!function (e, t) {
    "object" == typeof exports && "object" == typeof module ? module.exports = t() : "function" == typeof define && define.amd ? define([], t) : "object" == typeof exports ? exports.COS = t() : e.COS = t()
}(window, (function () {
    return function (e) {
        var t = {};

        function n(r) {
            if (t[r]) return t[r].exports;
            var o = t[r] = {i: r, l: !1, exports: {}};
            return e[r].call(o.exports, o, o.exports, n), o.l = !0, o.exports
        }

        return n.m = e, n.c = t, n.d = function (e, t, r) {
            n.o(e, t) || Object.defineProperty(e, t, {enumerable: !0, get: r})
        }, n.r = function (e) {
            "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e, Symbol.toStringTag, {value: "Module"}), Object.defineProperty(e, "__esModule", {value: !0})
        }, n.t = function (e, t) {
            if (1 & t && (e = n(e)), 8 & t) return e;
            if (4 & t && "object" == typeof e && e && e.__esModule) return e;
            var r = Object.create(null);
            if (n.r(r), Object.defineProperty(r, "default", {
                enumerable: !0,
                value: e
            }), 2 & t && "string" != typeof e) for (var o in e) n.d(r, o, function (t) {
                return e[t]
            }.bind(null, o));
            return r
        }, n.n = function (e) {
            var t = e && e.__esModule ? function () {
                return e.default
            } : function () {
                return e
            };
            return n.d(t, "a", t), t
        }, n.o = function (e, t) {
            return Object.prototype.hasOwnProperty.call(e, t)
        }, n.p = "/dist/", n(n.s = 11)
    }([function (e, t) {
        function n(t) {
            return e.exports = n = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (e) {
                return typeof e
            } : function (e) {
                return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e
            }, e.exports.__esModule = !0, e.exports.default = e.exports, n(t)
        }

        e.exports = n, e.exports.__esModule = !0, e.exports.default = e.exports
    }, function (e, t, n) {
        "use strict";
        (function (t) {
            var r = n(0), o = n(13), i = n(15), a = n(16), s = n(21), c = n(7);

            function u(e) {
                return encodeURIComponent(e).replace(/!/g, "%21").replace(/'/g, "%27").replace(/\(/g, "%28").replace(/\)/g, "%29").replace(/\*/g, "%2A")
            }

            function l(e, t) {
                var n = [];
                for (var r in e) e.hasOwnProperty(r) && n.push(t ? u(r).toLowerCase() : r);
                return n.sort((function (e, t) {
                    return (e = e.toLowerCase()) === (t = t.toLowerCase()) ? 0 : e > t ? 1 : -1
                }))
            }

            var d,
                p = ["content-disposition", "content-encoding", "content-length", "content-md5", "expect", "host", "if-match", "if-modified-since", "if-none-match", "if-unmodified-since", "origin", "range", "response-cache-control", "response-content-disposition", "response-content-encoding", "response-content-language", "response-content-type", "response-expires", "transfer-encoding", "versionid"],
                f = function (e, t, n) {
                    var r = t / 8, o = e.slice(n, n + r);
                    return new Uint8Array(o).reverse(), new {8: Uint8Array, 16: Uint16Array, 32: Uint32Array}[t](o)[0]
                }, h = function (e, t, n, r) {
                    var o = e.slice(t, n), i = "";
                    return new Uint8Array(o).forEach((function (e) {
                        i += String.fromCharCode(e)
                    })), r && (i = decodeURIComponent(escape(i))), i
                }, m = function () {
                }, g = function (e) {
                    var t = {};
                    for (var n in e) e.hasOwnProperty(n) && void 0 !== e[n] && null !== e[n] && (t[n] = e[n]);
                    return t
                }, y = (d = function (e, t) {
                    e = e.split("."), t = t.split(".");
                    for (var n = 0; n < t.length; n++) if (e[n] !== t[n]) return parseInt(e[n]) > parseInt(t[n]) ? 1 : -1;
                    return 0
                }, function (e) {
                    if (!e) return !1;
                    var t = (e.match(/Chrome\/([.\d]+)/) || [])[1], n = (e.match(/QBCore\/([.\d]+)/) || [])[1],
                        r = (e.match(/QQBrowser\/([.\d]+)/) || [])[1];
                    return t && d(t, "53.0.2785.116") < 0 && n && d(n, "3.53.991.400") < 0 && r && d(r, "9.0.2524.400") <= 0 || !1
                }("undefined" != typeof navigator && navigator.userAgent)), v = 1048576;

            function C(e) {
                return w(e, (function (e) {
                    return "object" === r(e) && null !== e ? C(e) : e
                }))
            }

            function k(e, t) {
                return b(t, (function (n, r) {
                    e[r] = t[r]
                })), e
            }

            function S(e) {
                return e instanceof Array
            }

            function b(e, t) {
                for (var n in e) e.hasOwnProperty(n) && t(e[n], n)
            }

            function w(e, t) {
                var n = S(e) ? [] : {};
                for (var r in e) e.hasOwnProperty(r) && (n[r] = t(e[r], r));
                return n
            }

            var T = function (e, t) {
                var n = t.Bucket, r = t.Region, o = t.Key, i = this.options.Domain,
                    a = !i || "string" == typeof i && i.indexOf("{Bucket}") > -1,
                    s = !i || "string" == typeof i && i.indexOf("{Region}") > -1;
                if (e.indexOf("Bucket") > -1 || "deleteMultipleObject" === e || "multipartList" === e || "listObjectVersions" === e) {
                    if (a && !n) return "Bucket";
                    if (s && !r) return "Region"
                } else if (e.indexOf("Object") > -1 || e.indexOf("multipart") > -1 || "sliceUploadFile" === e || "abortUploadTask" === e) {
                    if (a && !n) return "Bucket";
                    if (s && !r) return "Region";
                    if (!o) return "Key"
                }
                return !1
            }, R = function (e, t) {
                if (t = k({}, t), "getAuth" !== e && "getV4Auth" !== e && "getObjectUrl" !== e) {
                    var n = t.Headers || {};
                    if (t && "object" === r(t)) {
                        !function () {
                            for (var e in t) t.hasOwnProperty(e) && e.indexOf("x-cos-") > -1 && (n[e] = t[e])
                        }();
                        x.each({
                            "x-cos-mfa": "MFA",
                            "Content-MD5": "ContentMD5",
                            "Content-Length": "ContentLength",
                            "Content-Type": "ContentType",
                            Expect: "Expect",
                            Expires: "Expires",
                            "Cache-Control": "CacheControl",
                            "Content-Disposition": "ContentDisposition",
                            "Content-Encoding": "ContentEncoding",
                            Range: "Range",
                            "If-Modified-Since": "IfModifiedSince",
                            "If-Unmodified-Since": "IfUnmodifiedSince",
                            "If-Match": "IfMatch",
                            "If-None-Match": "IfNoneMatch",
                            "x-cos-copy-source": "CopySource",
                            "x-cos-copy-source-Range": "CopySourceRange",
                            "x-cos-metadata-directive": "MetadataDirective",
                            "x-cos-copy-source-If-Modified-Since": "CopySourceIfModifiedSince",
                            "x-cos-copy-source-If-Unmodified-Since": "CopySourceIfUnmodifiedSince",
                            "x-cos-copy-source-If-Match": "CopySourceIfMatch",
                            "x-cos-copy-source-If-None-Match": "CopySourceIfNoneMatch",
                            "x-cos-acl": "ACL",
                            "x-cos-grant-read": "GrantRead",
                            "x-cos-grant-write": "GrantWrite",
                            "x-cos-grant-full-control": "GrantFullControl",
                            "x-cos-grant-read-acp": "GrantReadAcp",
                            "x-cos-grant-write-acp": "GrantWriteAcp",
                            "x-cos-storage-class": "StorageClass",
                            "x-cos-traffic-limit": "TrafficLimit",
                            "x-cos-mime-limit": "MimeLimit",
                            "x-cos-server-side-encryption-customer-algorithm": "SSECustomerAlgorithm",
                            "x-cos-server-side-encryption-customer-key": "SSECustomerKey",
                            "x-cos-server-side-encryption-customer-key-MD5": "SSECustomerKeyMD5",
                            "x-cos-server-side-encryption": "ServerSideEncryption",
                            "x-cos-server-side-encryption-cos-kms-key-id": "SSEKMSKeyId",
                            "x-cos-server-side-encryption-context": "SSEContext"
                        }, (function (e, r) {
                            void 0 !== t[e] && (n[r] = t[e])
                        })), t.Headers = g(n)
                    }
                }
                return t
            }, E = function (e) {
                return Date.now() + (e || 0)
            }, x = {
                noop: m, formatParams: R, apiWrapper: function (e, t) {
                    return function (n, r) {
                        var o, i = this;
                        if ("function" == typeof n && (r = n, n = {}), n = R(e, n), i.options.EnableTracker) if ("sliceUploadFile" === n.calledBySdk) o = n.tracker && n.tracker.generateSubTracker({apiName: e}); else if (["uploadFile", "uploadFiles"].includes(e)) o = null; else {
                            var a = -1;
                            n.Body && (a = "string" == typeof n.Body ? n.Body.length : n.Body.size || n.Body.byteLength || -1), o = new c({
                                bucket: n.Bucket,
                                region: n.Region,
                                apiName: e,
                                fileKey: n.Key,
                                fileSize: a,
                                deepTracker: i.options.DeepTracker,
                                customId: i.options.CustomId,
                                delay: i.options.TrackerDelay
                            })
                        }
                        n.tracker = o;
                        var s = function (e) {
                            return e && e.headers && (e.headers["x-cos-request-id"] && (e.RequestId = e.headers["x-cos-request-id"]), e.headers["x-ci-request-id"] && (e.RequestId = e.headers["x-ci-request-id"]), e.headers["x-cos-version-id"] && (e.VersionId = e.headers["x-cos-version-id"]), e.headers["x-cos-delete-marker"] && (e.DeleteMarker = e.headers["x-cos-delete-marker"])), e
                        }, u = function (e, t) {
                            o && o.formatResult(e, t), r && r(s(e), s(t))
                        }, l = function () {
                            if ("getService" !== e && "abortUploadTask" !== e) {
                                var t = T.call(i, e, n);
                                if (t) return "missing param " + t;
                                if (n.Region) {
                                    if (i.options.CompatibilityMode) {
                                        if (!/^([a-z\d-.]+)$/.test(n.Region)) return "Region format error."
                                    } else {
                                        if (n.Region.indexOf("cos.") > -1) return 'param Region should not be start with "cos."';
                                        if (!/^([a-z\d-]+)$/.test(n.Region)) return "Region format error."
                                    }
                                    !i.options.CompatibilityMode && -1 === n.Region.indexOf("-") && "yfb" !== n.Region && "default" !== n.Region && n.Region
                                }
                                if (n.Bucket) {
                                    if (!/^([a-z\d-]+)-(\d+)$/.test(n.Bucket)) if (n.AppId) n.Bucket = n.Bucket + "-" + n.AppId; else {
                                        if (!i.options.AppId) return 'Bucket should format as "test-1250000000".';
                                        n.Bucket = n.Bucket + "-" + i.options.AppId
                                    }
                                    n.AppId && delete n.AppId
                                }
                                !i.options.UseRawKey && n.Key && "/" === n.Key.substr(0, 1) && (n.Key = n.Key.substr(1))
                            }
                        }(), d = "getAuth" === e || "getObjectUrl" === e;
                        if ("function" == typeof Promise && !d && !r) return new Promise((function (e, o) {
                            if (r = function (t, n) {
                                t ? o(t) : e(n)
                            }, l) return u(x.error(new Error(l)));
                            t.call(i, n, u)
                        }));
                        if (l) return u(x.error(new Error(l)));
                        var p = t.call(i, n, u);
                        return d ? p : void 0
                    }
                }, xml2json: a, json2xml: s, md5: o, clearKey: g, fileSlice: function (e, t, n, r, o) {
                    var i;
                    if (e.slice ? i = e.slice(t, n) : e.mozSlice ? i = e.mozSlice(t, n) : e.webkitSlice && (i = e.webkitSlice(t, n)), r && y) {
                        var a = new FileReader;
                        a.onload = function (e) {
                            i = null, o(new Blob([a.result]))
                        }, a.readAsArrayBuffer(i)
                    } else o(i)
                }, getBodyMd5: function (e, t, n, r) {
                    n = n || m, e ? "string" == typeof t ? n(x.md5(t, !0)) : Blob && t instanceof Blob ? x.getFileMd5(t, (function (e, t) {
                        n(t)
                    }), r) : n() : n()
                }, getFileMd5: function (e, t, n) {
                    var r = e.size, i = 0, a = o.getCtx();
                    !function o(s) {
                        if (s >= r) {
                            var c = a.digest("hex");
                            t(null, c)
                        } else {
                            var u = Math.min(r, s + v);
                            x.fileSlice(e, s, u, !1, (function (e) {
                                !function (e, t) {
                                    var n, r = new FileReader;
                                    FileReader.prototype.readAsBinaryString ? (n = FileReader.prototype.readAsBinaryString, r.onload = function () {
                                        t(this.result)
                                    }) : FileReader.prototype.readAsArrayBuffer && (n = function (e) {
                                        var n = "", r = new FileReader;
                                        r.onload = function (e) {
                                            for (var o = new Uint8Array(r.result), i = o.byteLength, a = 0; a < i; a++) n += String.fromCharCode(o[a]);
                                            t(n)
                                        }, r.readAsArrayBuffer(e)
                                    }), n.call(r, e)
                                }(e, (function (t) {
                                    e = null, a = a.update(t, !0), i += t.length, t = null, n && n({
                                        loaded: i,
                                        total: r,
                                        percent: Math.round(i / r * 1e4) / 1e4
                                    }), o(s + v)
                                }))
                            }))
                        }
                    }(0)
                }, binaryBase64: function (e) {
                    var t, n, r, o = "";
                    for (t = 0, n = e.length / 2; t < n; t++) r = parseInt(e[2 * t] + e[2 * t + 1], 16), o += String.fromCharCode(r);
                    return btoa(o)
                }, extend: k, isArray: S, isInArray: function (e, t) {
                    for (var n = !1, r = 0; r < e.length; r++) if (t === e[r]) {
                        n = !0;
                        break
                    }
                    return n
                }, makeArray: function (e) {
                    return S(e) ? e : [e]
                }, each: b, map: w, filter: function (e, t) {
                    var n = S(e), r = n ? [] : {};
                    for (var o in e) e.hasOwnProperty(o) && t(e[o], o) && (n ? r.push(e[o]) : r[o] = e[o]);
                    return r
                }, clone: C, attr: function (e, t, n) {
                    return e && t in e ? e[t] : n
                }, uuid: function () {
                    var e = function () {
                        return (65536 * (1 + Math.random()) | 0).toString(16).substring(1)
                    };
                    return e() + e() + "-" + e() + "-" + e() + "-" + e() + "-" + e() + e() + e()
                }, camSafeUrlEncode: u, throttleOnProgress: function (e, t) {
                    var n, r, o = this, i = 0, a = 0, s = Date.now();

                    function c() {
                        if (r = 0, t && "function" == typeof t) {
                            n = Date.now();
                            var o, c = Math.max(0, Math.round((a - i) / ((n - s) / 1e3) * 100) / 100) || 0;
                            o = 0 === a && 0 === e ? 1 : Math.floor(a / e * 100) / 100 || 0, s = n, i = a;
                            try {
                                t({loaded: a, total: e, speed: c, percent: o})
                            } catch (e) {
                            }
                        }
                    }

                    return function (t, n) {
                        if (t && (a = t.loaded, e = t.total), n) clearTimeout(r), c(); else {
                            if (r) return;
                            r = setTimeout(c, o.options.ProgressInterval)
                        }
                    }
                }, getFileSize: function (e, t, n) {
                    var r;
                    "string" == typeof t.Body ? t.Body = new Blob([t.Body], {type: "text/plain"}) : t.Body instanceof ArrayBuffer && (t.Body = new Blob([t.Body])), t.Body && (t.Body instanceof Blob || "[object File]" === t.Body.toString() || "[object Blob]" === t.Body.toString()) ? (r = t.Body.size, t.ContentLength = r, n(null, r)) : n(x.error(new Error("params body format error, Only allow File|Blob|String.")))
                }, getSkewTime: E, error: function (e, t) {
                    var n = e;
                    return e.message = e.message || null, "string" == typeof t ? (e.error = t, e.message = t) : "object" === r(t) && null !== t && (k(e, t), (t.code || t.name) && (e.code = t.code || t.name), t.message && (e.message = t.message), t.stack && (e.stack = t.stack)), "function" == typeof Object.defineProperty && (Object.defineProperty(e, "name", {
                        writable: !0,
                        enumerable: !1
                    }), Object.defineProperty(e, "message", {enumerable: !0})), e.name = t && t.name || e.name || e.code || "Error", e.code || (e.code = e.name), e.error || (e.error = C(n)), e
                }, obj2str: function (e, t) {
                    var n, r, o, i = [], a = l(e);
                    for (n = 0; n < a.length; n++) o = void 0 === e[r = a[n]] || null === e[r] ? "" : "" + e[r], r = t ? u(r).toLowerCase() : u(r), o = u(o) || "", i.push(r + "=" + o);
                    return i.join("&")
                }, getAuth: function (e) {
                    var t, n = (e = e || {}).SecretId, r = e.SecretKey, o = e.KeyTime,
                        a = (e.method || e.Method || "get").toLowerCase(), s = C(e.Query || e.params || {}),
                        c = function (e) {
                            var t = {};
                            for (var n in e) {
                                var r = n.toLowerCase();
                                (r.indexOf("x-cos-") > -1 || p.indexOf(r) > -1) && (t[n] = e[n])
                            }
                            return t
                        }(C(e.Headers || e.headers || {})), u = e.Key || "";
                    e.UseRawKey ? t = e.Pathname || e.pathname || "/" + u : 0 !== (t = e.Pathname || e.pathname || u).indexOf("/") && (t = "/" + t);
                    var d = !1 !== e.ForceSignHost;
                    if (!c.Host && !c.host && e.Bucket && e.Region && d && (c.Host = e.Bucket + ".cos." + e.Region + ".myqcloud.com"), !n) throw new Error("missing param SecretId");
                    if (!r) throw new Error("missing param SecretKey");
                    var f = Math.round(E(e.SystemClockOffset) / 1e3) - 1, h = f, m = e.Expires || e.expires;
                    h += void 0 === m ? 900 : 1 * m || 0;
                    var g = n, y = o || f + ";" + h, v = o || f + ";" + h, k = l(c, !0).join(";").toLowerCase(),
                        S = l(s, !0).join(";").toLowerCase(), b = i.HmacSHA1(v, r).toString(),
                        w = [a, t, x.obj2str(s, !0), x.obj2str(c, !0), ""].join("\n"),
                        T = ["sha1", y, i.SHA1(w).toString(), ""].join("\n");
                    return ["q-sign-algorithm=sha1", "q-ak=" + g, "q-sign-time=" + y, "q-key-time=" + v, "q-header-list=" + k, "q-url-param-list=" + S, "q-signature=" + i.HmacSHA1(T, b).toString()].join("&")
                }, parseSelectPayload: function (e) {
                    for (var t = {}, n = h(e), r = {records: []}; e.byteLength;) {
                        var o, i = f(e, 32, 0), a = f(e, 32, 4), s = i - a - 16, c = 0;
                        for (e = e.slice(12); c < a;) {
                            var u = f(e, 8, c), l = h(e, c + 1, c + 1 + u), d = f(e, 16, c + u + 2),
                                p = h(e, c + u + 4, c + u + 4 + d);
                            t[l] = p, c += u + 4 + d
                        }
                        if ("Records" === t[":event-type"]) o = h(e, c, c + s, !0), r.records.push(o); else if ("Stats" === t[":event-type"]) o = h(e, c, c + s, !0), r.stats = x.xml2json(o).Stats; else if ("error" === t[":event-type"]) {
                            var m = t[":error-code"], g = t[":error-message"], y = new Error(g);
                            y.message = g, y.name = y.code = m, r.error = y
                        } else ["Progress", "Continuation", "End"].includes(t[":event-type"]);
                        e = e.slice(c + s + 4)
                    }
                    return {payload: r.records.join(""), body: n}
                }, getSourceParams: function (e) {
                    var t = this.options.CopySourceParser;
                    if (t) return t(e);
                    var n = e.match(/^([^.]+-\d+)\.cos(v6|-cdc)?\.([^.]+)\.myqcloud\.com\/(.+)$/);
                    return n ? {Bucket: n[1], Region: n[3], Key: n[4]} : null
                }, isBrowser: !0, isNode: function () {
                    return "object" !== ("undefined" == typeof window ? "undefined" : r(window)) && "object" === (void 0 === t ? "undefined" : r(t)) && !("object" === ("undefined" == typeof globalThis ? "undefined" : r(globalThis)) && ("DedicatedWorkerGlobalScope" === globalThis.constructor.name || globalThis.FileReaderSync))
                }, isCIHost: function (e) {
                    return /^https?:\/\/([^/]+\.)?ci\.[^/]+/.test(e)
                }
            };
            e.exports = x
        }).call(this, n(3))
    }, function (e, t, n) {
        "use strict";

        function r(e, t) {
            return void 0 === t && (t = Object), t && "function" == typeof t.freeze ? t.freeze(e) : e
        }

        var o = r({
            HTML: "text/html",
            isHTML: function (e) {
                return e === o.HTML
            },
            XML_APPLICATION: "application/xml",
            XML_TEXT: "text/xml",
            XML_XHTML_APPLICATION: "application/xhtml+xml",
            XML_SVG_IMAGE: "image/svg+xml"
        }), i = r({
            HTML: "http://www.w3.org/1999/xhtml",
            isHTML: function (e) {
                return e === i.HTML
            },
            SVG: "http://www.w3.org/2000/svg",
            XML: "http://www.w3.org/XML/1998/namespace",
            XMLNS: "http://www.w3.org/2000/xmlns/"
        });
        t.assign = function (e, t) {
            if (null === e || "object" != typeof e) throw new TypeError("target is not an object");
            for (var n in t) Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
            return e
        }, t.freeze = r, t.MIME_TYPE = o, t.NAMESPACE = i
    }, function (e, t) {
        var n, r, o = e.exports = {};

        function i() {
            throw new Error("setTimeout has not been defined")
        }

        function a() {
            throw new Error("clearTimeout has not been defined")
        }

        function s(e) {
            if (n === setTimeout) return setTimeout(e, 0);
            if ((n === i || !n) && setTimeout) return n = setTimeout, setTimeout(e, 0);
            try {
                return n(e, 0)
            } catch (t) {
                try {
                    return n.call(null, e, 0)
                } catch (t) {
                    return n.call(this, e, 0)
                }
            }
        }

        !function () {
            try {
                n = "function" == typeof setTimeout ? setTimeout : i
            } catch (e) {
                n = i
            }
            try {
                r = "function" == typeof clearTimeout ? clearTimeout : a
            } catch (e) {
                r = a
            }
        }();
        var c, u = [], l = !1, d = -1;

        function p() {
            l && c && (l = !1, c.length ? u = c.concat(u) : d = -1, u.length && f())
        }

        function f() {
            if (!l) {
                var e = s(p);
                l = !0;
                for (var t = u.length; t;) {
                    for (c = u, u = []; ++d < t;) c && c[d].run();
                    d = -1, t = u.length
                }
                c = null, l = !1, function (e) {
                    if (r === clearTimeout) return clearTimeout(e);
                    if ((r === a || !r) && clearTimeout) return r = clearTimeout, clearTimeout(e);
                    try {
                        r(e)
                    } catch (t) {
                        try {
                            return r.call(null, e)
                        } catch (t) {
                            return r.call(this, e)
                        }
                    }
                }(e)
            }
        }

        function h(e, t) {
            this.fun = e, this.array = t
        }

        function m() {
        }

        o.nextTick = function (e) {
            var t = new Array(arguments.length - 1);
            if (arguments.length > 1) for (var n = 1; n < arguments.length; n++) t[n - 1] = arguments[n];
            u.push(new h(e, t)), 1 !== u.length || l || s(f)
        }, h.prototype.run = function () {
            this.fun.apply(null, this.array)
        }, o.title = "browser", o.browser = !0, o.env = {}, o.argv = [], o.version = "", o.versions = {}, o.on = m, o.addListener = m, o.once = m, o.off = m, o.removeListener = m, o.removeAllListeners = m, o.emit = m, o.prependListener = m, o.prependOnceListener = m, o.listeners = function (e) {
            return []
        }, o.binding = function (e) {
            throw new Error("process.binding is not supported")
        }, o.cwd = function () {
            return "/"
        }, o.chdir = function (e) {
            throw new Error("process.chdir is not supported")
        }, o.umask = function () {
            return 0
        }
    }, function (e, t) {
        var n;
        n = function () {
            return this
        }();
        try {
            n = n || new Function("return this")()
        } catch (e) {
            "object" == typeof window && (n = window)
        }
        e.exports = n
    }, function (e, t) {
        e.exports = function (e) {
            return e.webpackPolyfill || (e.deprecate = function () {
            }, e.paths = [], e.children || (e.children = []), Object.defineProperty(e, "loaded", {
                enumerable: !0,
                get: function () {
                    return e.l
                }
            }), Object.defineProperty(e, "id", {
                enumerable: !0, get: function () {
                    return e.i
                }
            }), e.webpackPolyfill = 1), e
        }
    }, function (e, t, n) {
        var r = n(2).NAMESPACE;

        function o(e) {
            return "" !== e
        }

        function i(e, t) {
            return e.hasOwnProperty(t) || (e[t] = !0), e
        }

        function a(e) {
            if (!e) return [];
            var t = function (e) {
                return e ? e.split(/[\t\n\f\r ]+/).filter(o) : []
            }(e);
            return Object.keys(t.reduce(i, {}))
        }

        function s(e, t) {
            for (var n in e) t[n] = e[n]
        }

        function c(e, t) {
            var n = e.prototype;
            if (!(n instanceof t)) {
                function r() {
                }

                r.prototype = t.prototype, s(n, r = new r), e.prototype = n = r
            }
            n.constructor != e && (n.constructor = e)
        }

        var u = {}, l = u.ELEMENT_NODE = 1, d = u.ATTRIBUTE_NODE = 2, p = u.TEXT_NODE = 3, f = u.CDATA_SECTION_NODE = 4,
            h = u.ENTITY_REFERENCE_NODE = 5, m = u.ENTITY_NODE = 6, g = u.PROCESSING_INSTRUCTION_NODE = 7,
            y = u.COMMENT_NODE = 8, v = u.DOCUMENT_NODE = 9, C = u.DOCUMENT_TYPE_NODE = 10,
            k = u.DOCUMENT_FRAGMENT_NODE = 11, S = u.NOTATION_NODE = 12, b = {}, w = {},
            T = (b.INDEX_SIZE_ERR = (w[1] = "Index size error", 1), b.DOMSTRING_SIZE_ERR = (w[2] = "DOMString size error", 2), b.HIERARCHY_REQUEST_ERR = (w[3] = "Hierarchy request error", 3)),
            R = (b.WRONG_DOCUMENT_ERR = (w[4] = "Wrong document", 4), b.INVALID_CHARACTER_ERR = (w[5] = "Invalid character", 5), b.NO_DATA_ALLOWED_ERR = (w[6] = "No data allowed", 6), b.NO_MODIFICATION_ALLOWED_ERR = (w[7] = "No modification allowed", 7), b.NOT_FOUND_ERR = (w[8] = "Not found", 8)),
            E = (b.NOT_SUPPORTED_ERR = (w[9] = "Not supported", 9), b.INUSE_ATTRIBUTE_ERR = (w[10] = "Attribute in use", 10));
        b.INVALID_STATE_ERR = (w[11] = "Invalid state", 11), b.SYNTAX_ERR = (w[12] = "Syntax error", 12), b.INVALID_MODIFICATION_ERR = (w[13] = "Invalid modification", 13), b.NAMESPACE_ERR = (w[14] = "Invalid namespace", 14), b.INVALID_ACCESS_ERR = (w[15] = "Invalid access", 15);

        function x(e, t) {
            if (t instanceof Error) var n = t; else n = this, Error.call(this, w[e]), this.message = w[e], Error.captureStackTrace && Error.captureStackTrace(this, x);
            return n.code = e, t && (this.message = this.message + ": " + t), n
        }

        function A() {
        }

        function B(e, t) {
            this._node = e, this._refresh = t, I(this)
        }

        function I(e) {
            var t = e._node._inc || e._node.ownerDocument._inc;
            if (e._inc != t) {
                var n = e._refresh(e._node);
                ue(e, "length", n.length), s(n, e), e._inc = t
            }
        }

        function _() {
        }

        function O(e, t) {
            for (var n = e.length; n--;) if (e[n] === t) return n
        }

        function P(e, t, n, o) {
            if (o ? t[O(t, o)] = n : t[t.length++] = n, e) {
                n.ownerElement = e;
                var i = e.ownerDocument;
                i && (o && j(i, e, o), function (e, t, n) {
                    e && e._inc++, n.namespaceURI === r.XMLNS && (t._nsMap[n.prefix ? n.localName : ""] = n.value)
                }(i, e, n))
            }
        }

        function D(e, t, n) {
            var r = O(t, n);
            if (!(r >= 0)) throw x(R, new Error(e.tagName + "@" + n));
            for (var o = t.length - 1; r < o;) t[r] = t[++r];
            if (t.length = o, e) {
                var i = e.ownerDocument;
                i && (j(i, e, n), n.ownerElement = null)
            }
        }

        function N() {
        }

        function U() {
        }

        function M(e) {
            return ("<" == e ? "&lt;" : ">" == e && "&gt;") || "&" == e && "&amp;" || '"' == e && "&quot;" || "&#" + e.charCodeAt() + ";"
        }

        function L(e, t) {
            if (t(e)) return !0;
            if (e = e.firstChild) do {
                if (L(e, t)) return !0
            } while (e = e.nextSibling)
        }

        function H() {
        }

        function j(e, t, n, o) {
            e && e._inc++, n.namespaceURI === r.XMLNS && delete t._nsMap[n.prefix ? n.localName : ""]
        }

        function F(e, t, n) {
            if (e && e._inc) {
                e._inc++;
                var r = t.childNodes;
                if (n) r[r.length++] = n; else {
                    for (var o = t.firstChild, i = 0; o;) r[i++] = o, o = o.nextSibling;
                    r.length = i, delete r[r.length]
                }
            }
        }

        function K(e, t) {
            var n = t.previousSibling, r = t.nextSibling;
            return n ? n.nextSibling = r : e.firstChild = r, r ? r.previousSibling = n : e.lastChild = n, t.parentNode = null, t.previousSibling = null, t.nextSibling = null, F(e.ownerDocument, e), t
        }

        function q(e, t, n) {
            var r = t.parentNode;
            if (r && r.removeChild(t), t.nodeType === k) {
                var o = t.firstChild;
                if (null == o) return t;
                var i = t.lastChild
            } else o = i = t;
            var a = n ? n.previousSibling : e.lastChild;
            o.previousSibling = a, i.nextSibling = n, a ? a.nextSibling = o : e.firstChild = o, null == n ? e.lastChild = i : n.previousSibling = i;
            do {
                o.parentNode = e
            } while (o !== i && (o = o.nextSibling));
            return F(e.ownerDocument || e, e), t.nodeType == k && (t.firstChild = t.lastChild = null), t
        }

        function z() {
            this._nsMap = {}
        }

        function G() {
        }

        function V() {
        }

        function X() {
        }

        function W() {
        }

        function J() {
        }

        function Q() {
        }

        function $() {
        }

        function Y() {
        }

        function Z() {
        }

        function ee() {
        }

        function te() {
        }

        function ne() {
        }

        function re(e, t) {
            var n = [], r = 9 == this.nodeType && this.documentElement || this, o = r.prefix, i = r.namespaceURI;
            if (i && null == o && null == (o = r.lookupPrefix(i))) var a = [{namespace: i, prefix: null}];
            return ae(this, n, e, t, a), n.join("")
        }

        function oe(e, t, n) {
            var o = e.prefix || "", i = e.namespaceURI;
            if (!i) return !1;
            if ("xml" === o && i === r.XML || i === r.XMLNS) return !1;
            for (var a = n.length; a--;) {
                var s = n[a];
                if (s.prefix === o) return s.namespace !== i
            }
            return !0
        }

        function ie(e, t, n) {
            e.push(" ", t, '="', n.replace(/[<>&"\t\n\r]/g, M), '"')
        }

        function ae(e, t, n, o, i) {
            if (i || (i = []), o) {
                if (!(e = o(e))) return;
                if ("string" == typeof e) return void t.push(e)
            }
            switch (e.nodeType) {
                case l:
                    var a = e.attributes, s = a.length, c = e.firstChild, u = e.tagName, m = u;
                    if (!(n = r.isHTML(e.namespaceURI) || n) && !e.prefix && e.namespaceURI) {
                        for (var S, b = 0; b < a.length; b++) if ("xmlns" === a.item(b).name) {
                            S = a.item(b).value;
                            break
                        }
                        if (!S) for (var w = i.length - 1; w >= 0; w--) {
                            if ("" === (T = i[w]).prefix && T.namespace === e.namespaceURI) {
                                S = T.namespace;
                                break
                            }
                        }
                        if (S !== e.namespaceURI) for (w = i.length - 1; w >= 0; w--) {
                            var T;
                            if ((T = i[w]).namespace === e.namespaceURI) {
                                T.prefix && (m = T.prefix + ":" + u);
                                break
                            }
                        }
                    }
                    t.push("<", m);
                    for (var R = 0; R < s; R++) {
                        "xmlns" == (E = a.item(R)).prefix ? i.push({
                            prefix: E.localName,
                            namespace: E.value
                        }) : "xmlns" == E.nodeName && i.push({prefix: "", namespace: E.value})
                    }
                    for (R = 0; R < s; R++) {
                        var E, x, A;
                        if (oe(E = a.item(R), 0, i)) ie(t, (x = E.prefix || "") ? "xmlns:" + x : "xmlns", A = E.namespaceURI), i.push({
                            prefix: x,
                            namespace: A
                        });
                        ae(E, t, n, o, i)
                    }
                    if (u === m && oe(e, 0, i)) ie(t, (x = e.prefix || "") ? "xmlns:" + x : "xmlns", A = e.namespaceURI), i.push({
                        prefix: x,
                        namespace: A
                    });
                    if (c || n && !/^(?:meta|link|img|br|hr|input)$/i.test(u)) {
                        if (t.push(">"), n && /^script$/i.test(u)) for (; c;) c.data ? t.push(c.data) : ae(c, t, n, o, i.slice()), c = c.nextSibling; else for (; c;) ae(c, t, n, o, i.slice()), c = c.nextSibling;
                        t.push("</", m, ">")
                    } else t.push("/>");
                    return;
                case v:
                case k:
                    for (c = e.firstChild; c;) ae(c, t, n, o, i.slice()), c = c.nextSibling;
                    return;
                case d:
                    return ie(t, e.name, e.value);
                case p:
                    return t.push(e.data.replace(/[<&>]/g, M));
                case f:
                    return t.push("<![CDATA[", e.data, "]]>");
                case y:
                    return t.push("\x3c!--", e.data, "--\x3e");
                case C:
                    var B = e.publicId, I = e.systemId;
                    if (t.push("<!DOCTYPE ", e.name), B) t.push(" PUBLIC ", B), I && "." != I && t.push(" ", I), t.push(">"); else if (I && "." != I) t.push(" SYSTEM ", I, ">"); else {
                        var _ = e.internalSubset;
                        _ && t.push(" [", _, "]"), t.push(">")
                    }
                    return;
                case g:
                    return t.push("<?", e.target, " ", e.data, "?>");
                case h:
                    return t.push("&", e.nodeName, ";");
                default:
                    t.push("??", e.nodeName)
            }
        }

        function se(e, t, n) {
            var r;
            switch (t.nodeType) {
                case l:
                    (r = t.cloneNode(!1)).ownerDocument = e;
                case k:
                    break;
                case d:
                    n = !0
            }
            if (r || (r = t.cloneNode(!1)), r.ownerDocument = e, r.parentNode = null, n) for (var o = t.firstChild; o;) r.appendChild(se(e, o, n)), o = o.nextSibling;
            return r
        }

        function ce(e, t, n) {
            var r = new t.constructor;
            for (var o in t) {
                var i = t[o];
                "object" != typeof i && i != r[o] && (r[o] = i)
            }
            switch (t.childNodes && (r.childNodes = new A), r.ownerDocument = e, r.nodeType) {
                case l:
                    var a = t.attributes, s = r.attributes = new _, c = a.length;
                    s._ownerElement = r;
                    for (var u = 0; u < c; u++) r.setAttributeNode(ce(e, a.item(u), !0));
                    break;
                case d:
                    n = !0
            }
            if (n) for (var p = t.firstChild; p;) r.appendChild(ce(e, p, n)), p = p.nextSibling;
            return r
        }

        function ue(e, t, n) {
            e[t] = n
        }

        x.prototype = Error.prototype, s(b, x), A.prototype = {
            length: 0, item: function (e) {
                return this[e] || null
            }, toString: function (e, t) {
                for (var n = [], r = 0; r < this.length; r++) ae(this[r], n, e, t);
                return n.join("")
            }
        }, B.prototype.item = function (e) {
            return I(this), this[e]
        }, c(B, A), _.prototype = {
            length: 0, item: A.prototype.item, getNamedItem: function (e) {
                for (var t = this.length; t--;) {
                    var n = this[t];
                    if (n.nodeName == e) return n
                }
            }, setNamedItem: function (e) {
                var t = e.ownerElement;
                if (t && t != this._ownerElement) throw new x(E);
                var n = this.getNamedItem(e.nodeName);
                return P(this._ownerElement, this, e, n), n
            }, setNamedItemNS: function (e) {
                var t, n = e.ownerElement;
                if (n && n != this._ownerElement) throw new x(E);
                return t = this.getNamedItemNS(e.namespaceURI, e.localName), P(this._ownerElement, this, e, t), t
            }, removeNamedItem: function (e) {
                var t = this.getNamedItem(e);
                return D(this._ownerElement, this, t), t
            }, removeNamedItemNS: function (e, t) {
                var n = this.getNamedItemNS(e, t);
                return D(this._ownerElement, this, n), n
            }, getNamedItemNS: function (e, t) {
                for (var n = this.length; n--;) {
                    var r = this[n];
                    if (r.localName == t && r.namespaceURI == e) return r
                }
                return null
            }
        }, N.prototype = {
            hasFeature: function (e, t) {
                return !0
            }, createDocument: function (e, t, n) {
                var r = new H;
                if (r.implementation = this, r.childNodes = new A, r.doctype = n || null, n && r.appendChild(n), t) {
                    var o = r.createElementNS(e, t);
                    r.appendChild(o)
                }
                return r
            }, createDocumentType: function (e, t, n) {
                var r = new Q;
                return r.name = e, r.nodeName = e, r.publicId = t || "", r.systemId = n || "", r
            }
        }, U.prototype = {
            firstChild: null,
            lastChild: null,
            previousSibling: null,
            nextSibling: null,
            attributes: null,
            parentNode: null,
            childNodes: null,
            ownerDocument: null,
            nodeValue: null,
            namespaceURI: null,
            prefix: null,
            localName: null,
            insertBefore: function (e, t) {
                return q(this, e, t)
            },
            replaceChild: function (e, t) {
                this.insertBefore(e, t), t && this.removeChild(t)
            },
            removeChild: function (e) {
                return K(this, e)
            },
            appendChild: function (e) {
                return this.insertBefore(e, null)
            },
            hasChildNodes: function () {
                return null != this.firstChild
            },
            cloneNode: function (e) {
                return ce(this.ownerDocument || this, this, e)
            },
            normalize: function () {
                for (var e = this.firstChild; e;) {
                    var t = e.nextSibling;
                    t && t.nodeType == p && e.nodeType == p ? (this.removeChild(t), e.appendData(t.data)) : (e.normalize(), e = t)
                }
            },
            isSupported: function (e, t) {
                return this.ownerDocument.implementation.hasFeature(e, t)
            },
            hasAttributes: function () {
                return this.attributes.length > 0
            },
            lookupPrefix: function (e) {
                for (var t = this; t;) {
                    var n = t._nsMap;
                    if (n) for (var r in n) if (n[r] == e) return r;
                    t = t.nodeType == d ? t.ownerDocument : t.parentNode
                }
                return null
            },
            lookupNamespaceURI: function (e) {
                for (var t = this; t;) {
                    var n = t._nsMap;
                    if (n && e in n) return n[e];
                    t = t.nodeType == d ? t.ownerDocument : t.parentNode
                }
                return null
            },
            isDefaultNamespace: function (e) {
                return null == this.lookupPrefix(e)
            }
        }, s(u, U), s(u, U.prototype), H.prototype = {
            nodeName: "#document",
            nodeType: v,
            doctype: null,
            documentElement: null,
            _inc: 1,
            insertBefore: function (e, t) {
                if (e.nodeType == k) {
                    for (var n = e.firstChild; n;) {
                        var r = n.nextSibling;
                        this.insertBefore(n, t), n = r
                    }
                    return e
                }
                return null == this.documentElement && e.nodeType == l && (this.documentElement = e), q(this, e, t), e.ownerDocument = this, e
            },
            removeChild: function (e) {
                return this.documentElement == e && (this.documentElement = null), K(this, e)
            },
            importNode: function (e, t) {
                return se(this, e, t)
            },
            getElementById: function (e) {
                var t = null;
                return L(this.documentElement, (function (n) {
                    if (n.nodeType == l && n.getAttribute("id") == e) return t = n, !0
                })), t
            },
            getElementsByClassName: function (e) {
                var t = a(e);
                return new B(this, (function (n) {
                    var r = [];
                    return t.length > 0 && L(n.documentElement, (function (o) {
                        if (o !== n && o.nodeType === l) {
                            var i = o.getAttribute("class");
                            if (i) {
                                var s = e === i;
                                if (!s) {
                                    var c = a(i);
                                    s = t.every((u = c, function (e) {
                                        return u && -1 !== u.indexOf(e)
                                    }))
                                }
                                s && r.push(o)
                            }
                        }
                        var u
                    })), r
                }))
            },
            createElement: function (e) {
                var t = new z;
                return t.ownerDocument = this, t.nodeName = e, t.tagName = e, t.localName = e, t.childNodes = new A, (t.attributes = new _)._ownerElement = t, t
            },
            createDocumentFragment: function () {
                var e = new ee;
                return e.ownerDocument = this, e.childNodes = new A, e
            },
            createTextNode: function (e) {
                var t = new X;
                return t.ownerDocument = this, t.appendData(e), t
            },
            createComment: function (e) {
                var t = new W;
                return t.ownerDocument = this, t.appendData(e), t
            },
            createCDATASection: function (e) {
                var t = new J;
                return t.ownerDocument = this, t.appendData(e), t
            },
            createProcessingInstruction: function (e, t) {
                var n = new te;
                return n.ownerDocument = this, n.tagName = n.target = e, n.nodeValue = n.data = t, n
            },
            createAttribute: function (e) {
                var t = new G;
                return t.ownerDocument = this, t.name = e, t.nodeName = e, t.localName = e, t.specified = !0, t
            },
            createEntityReference: function (e) {
                var t = new Z;
                return t.ownerDocument = this, t.nodeName = e, t
            },
            createElementNS: function (e, t) {
                var n = new z, r = t.split(":"), o = n.attributes = new _;
                return n.childNodes = new A, n.ownerDocument = this, n.nodeName = t, n.tagName = t, n.namespaceURI = e, 2 == r.length ? (n.prefix = r[0], n.localName = r[1]) : n.localName = t, o._ownerElement = n, n
            },
            createAttributeNS: function (e, t) {
                var n = new G, r = t.split(":");
                return n.ownerDocument = this, n.nodeName = t, n.name = t, n.namespaceURI = e, n.specified = !0, 2 == r.length ? (n.prefix = r[0], n.localName = r[1]) : n.localName = t, n
            }
        }, c(H, U), z.prototype = {
            nodeType: l, hasAttribute: function (e) {
                return null != this.getAttributeNode(e)
            }, getAttribute: function (e) {
                var t = this.getAttributeNode(e);
                return t && t.value || ""
            }, getAttributeNode: function (e) {
                return this.attributes.getNamedItem(e)
            }, setAttribute: function (e, t) {
                var n = this.ownerDocument.createAttribute(e);
                n.value = n.nodeValue = "" + t, this.setAttributeNode(n)
            }, removeAttribute: function (e) {
                var t = this.getAttributeNode(e);
                t && this.removeAttributeNode(t)
            }, appendChild: function (e) {
                return e.nodeType === k ? this.insertBefore(e, null) : function (e, t) {
                    return t.parentNode && t.parentNode.removeChild(t), t.parentNode = e, t.previousSibling = e.lastChild, t.nextSibling = null, t.previousSibling ? t.previousSibling.nextSibling = t : e.firstChild = t, e.lastChild = t, F(e.ownerDocument, e, t), t
                }(this, e)
            }, setAttributeNode: function (e) {
                return this.attributes.setNamedItem(e)
            }, setAttributeNodeNS: function (e) {
                return this.attributes.setNamedItemNS(e)
            }, removeAttributeNode: function (e) {
                return this.attributes.removeNamedItem(e.nodeName)
            }, removeAttributeNS: function (e, t) {
                var n = this.getAttributeNodeNS(e, t);
                n && this.removeAttributeNode(n)
            }, hasAttributeNS: function (e, t) {
                return null != this.getAttributeNodeNS(e, t)
            }, getAttributeNS: function (e, t) {
                var n = this.getAttributeNodeNS(e, t);
                return n && n.value || ""
            }, setAttributeNS: function (e, t, n) {
                var r = this.ownerDocument.createAttributeNS(e, t);
                r.value = r.nodeValue = "" + n, this.setAttributeNode(r)
            }, getAttributeNodeNS: function (e, t) {
                return this.attributes.getNamedItemNS(e, t)
            }, getElementsByTagName: function (e) {
                return new B(this, (function (t) {
                    var n = [];
                    return L(t, (function (r) {
                        r === t || r.nodeType != l || "*" !== e && r.tagName != e || n.push(r)
                    })), n
                }))
            }, getElementsByTagNameNS: function (e, t) {
                return new B(this, (function (n) {
                    var r = [];
                    return L(n, (function (o) {
                        o === n || o.nodeType !== l || "*" !== e && o.namespaceURI !== e || "*" !== t && o.localName != t || r.push(o)
                    })), r
                }))
            }
        }, H.prototype.getElementsByTagName = z.prototype.getElementsByTagName, H.prototype.getElementsByTagNameNS = z.prototype.getElementsByTagNameNS, c(z, U), G.prototype.nodeType = d, c(G, U), V.prototype = {
            data: "",
            substringData: function (e, t) {
                return this.data.substring(e, e + t)
            },
            appendData: function (e) {
                e = this.data + e, this.nodeValue = this.data = e, this.length = e.length
            },
            insertData: function (e, t) {
                this.replaceData(e, 0, t)
            },
            appendChild: function (e) {
                throw new Error(w[T])
            },
            deleteData: function (e, t) {
                this.replaceData(e, t, "")
            },
            replaceData: function (e, t, n) {
                n = this.data.substring(0, e) + n + this.data.substring(e + t), this.nodeValue = this.data = n, this.length = n.length
            }
        }, c(V, U), X.prototype = {
            nodeName: "#text", nodeType: p, splitText: function (e) {
                var t = this.data, n = t.substring(e);
                t = t.substring(0, e), this.data = this.nodeValue = t, this.length = t.length;
                var r = this.ownerDocument.createTextNode(n);
                return this.parentNode && this.parentNode.insertBefore(r, this.nextSibling), r
            }
        }, c(X, V), W.prototype = {
            nodeName: "#comment",
            nodeType: y
        }, c(W, V), J.prototype = {
            nodeName: "#cdata-section",
            nodeType: f
        }, c(J, V), Q.prototype.nodeType = C, c(Q, U), $.prototype.nodeType = S, c($, U), Y.prototype.nodeType = m, c(Y, U), Z.prototype.nodeType = h, c(Z, U), ee.prototype.nodeName = "#document-fragment", ee.prototype.nodeType = k, c(ee, U), te.prototype.nodeType = g, c(te, U), ne.prototype.serializeToString = function (e, t, n) {
            return re.call(e, t, n)
        }, U.prototype.toString = re;
        try {
            if (Object.defineProperty) {
                function le(e) {
                    switch (e.nodeType) {
                        case l:
                        case k:
                            var t = [];
                            for (e = e.firstChild; e;) 7 !== e.nodeType && 8 !== e.nodeType && t.push(le(e)), e = e.nextSibling;
                            return t.join("");
                        default:
                            return e.nodeValue
                    }
                }

                Object.defineProperty(B.prototype, "length", {
                    get: function () {
                        return I(this), this.$$length
                    }
                }), Object.defineProperty(U.prototype, "textContent", {
                    get: function () {
                        return le(this)
                    }, set: function (e) {
                        switch (this.nodeType) {
                            case l:
                            case k:
                                for (; this.firstChild;) this.removeChild(this.firstChild);
                                (e || String(e)) && this.appendChild(this.ownerDocument.createTextNode(e));
                                break;
                            default:
                                this.data = e, this.value = e, this.nodeValue = e
                        }
                    }
                }), ue = function (e, t, n) {
                    e["$$" + t] = n
                }
            }
        } catch (de) {
        }
        t.DocumentType = Q, t.DOMException = x, t.DOMImplementation = N, t.Element = z, t.Node = U, t.NodeList = A, t.XMLSerializer = ne
    }, function (e, t, n) {
        var r = n(22), o = n(23), i = n(0), a = n(8), s = n(24), c = null, u = function (e) {
                return c || (c = new s({
                    appkey: "0AND0VEVB24UBGDU",
                    versionCode: a.version,
                    channelID: "js_sdk",
                    openid: "openid",
                    unionid: "unid",
                    strictMode: !1,
                    delay: e,
                    sessionDuration: 6e4
                })), c
            }, l = function () {
                var e = function () {
                    return (65536 * (1 + Math.random()) | 0).toString(16).substring(1)
                };
                return e() + e() + "-" + e() + "-" + e() + "-" + e() + "-" + e() + e() + e()
            }, d = function () {
                if ("object" === ("undefined" == typeof navigator ? "undefined" : i(navigator))) {
                    var e = navigator.connection || navigator.mozConnection || navigator.webkitConnection;
                    return (null == e ? void 0 : e.type) || (null == e ? void 0 : e.effectiveType) || "unknown"
                }
                return "unknown"
            }, p = function () {
                if ("object" !== ("undefined" == typeof navigator ? "undefined" : i(navigator))) return "unknown os";
                var e = navigator.userAgent.toLowerCase(), t = /macintosh|mac os x/i.test(navigator.userAgent);
                return e.indexOf("win32") >= 0 || e.indexOf("wow32") >= 0 ? "win32" : e.indexOf("win64") >= 0 || e.indexOf("wow64") >= 0 ? "win64" : t ? "mac" : "unknown os"
            }, f = function () {
                return !("object" !== ("undefined" == typeof navigator ? "undefined" : i(navigator)) || !navigator.userAgent.match(/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i))
            }, h = function () {
                return !("object" !== ("undefined" == typeof navigator ? "undefined" : i(navigator)) || !navigator.userAgent.match(/(Android|Adr|Linux)/i))
            }, m = function () {
                return !("object" !== ("undefined" == typeof navigator ? "undefined" : i(navigator)) || !navigator.userAgent.match(/(iPhone|iPod|iPad|iOS)/i))
            }, g = function () {
                if ("object" !== ("undefined" == typeof navigator ? "undefined" : i(navigator))) return "unknown device";
                var e = navigator.userAgent.toLowerCase();
                if (e.includes("app/tencent_wemeet")) return "tencent_wemeet";
                if (e.indexOf("maxthon") >= 0) {
                    var t = e.match(/maxthon\/([\d.]+)/), n = t && t[1] || "";
                    return "傲游浏览器 ".concat(n).trim()
                }
                if (e.indexOf("qqbrowser") >= 0) {
                    var r = e.match(/qqbrowser\/([\d.]+)/), o = r && r[1] || "";
                    return "QQ浏览器 ".concat(o).trim()
                }
                if (e.indexOf("se 2.x") >= 0) return "搜狗浏览器";
                if (e.indexOf("wxwork") >= 0) return "微信内置浏览器";
                if (e.indexOf("msie") >= 0) {
                    var a = e.match(/msie ([\d.]+)/), s = a && a[1] || "";
                    return "IE ".concat(s).trim()
                }
                if (e.indexOf("firefox") >= 0) {
                    var c = e.match(/firefox\/([\d.]+)/), u = c && c[1] || "";
                    return "Firefox ".concat(u).trim()
                }
                if (e.indexOf("chrome") >= 0) {
                    var l = e.match(/chrome\/([\d.]+)/), d = l && l[1] || "";
                    return "Chrome ".concat(d).trim()
                }
                if (e.indexOf("opera") >= 0) {
                    var p = e.match(/opera.([\d.]+)/), f = p && p[1] || "";
                    return "Opera ".concat(f).trim()
                }
                if (e.indexOf("safari") >= 0) {
                    var h = e.match(/version\/([\d.]+)/), m = h && h[1] || "";
                    return "Safari ".concat(m).trim()
                }
                if (e.indexOf("edge") >= 0) {
                    var g = e.match(/edge\/([\d.]+)/), y = g && g[1] || "";
                    return "edge ".concat(y).trim()
                }
                return e.substr(0, 200)
            }, y = {
                isMobile: f(),
                isBrowser: !f(),
                mobileOsType: h() ? "android" : m ? "ios" : "other_mobile",
                pcOsType: p()
            }, v = {
                deviceType: y.isMobile ? "mobile" : y.isBrowser ? "browser" : "unknown",
                devicePlatform: y.isMobile ? y.mobileOsType : y.pcOsType,
                deviceName: g()
            },
            C = ["multipartInit", "multipartUpload", "multipartComplete", "multipartList", "multipartListPart", "multipartAbort"],
            k = ["putObject", "postObject", "appendObject", "sliceUploadFile", "uploadFile", "uploadFiles"].concat(C),
            S = ["getObject"];

        function b(e) {
            return e.replace(/([A-Z])/g, "_$1").toLowerCase()
        }

        var w = function () {
            "use strict";

            function e(t) {
                r(this, e);
                var n = t.parent, o = t.traceId, i = t.bucket, s = t.region, c = t.apiName, d = t.fileKey,
                    p = t.fileSize, f = t.accelerate, h = t.customId, m = t.delay, g = t.deepTracker,
                    y = i && i.substr(i.lastIndexOf("-") + 1) || "";
                this.parent = n, this.deepTracker = g, this.delay = m, this.params = {
                    cossdkVersion: a.version,
                    region: s,
                    networkType: "",
                    host: "",
                    accelerate: f ? "Y" : "N",
                    requestPath: d || "",
                    size: p || -1,
                    httpMd5: 0,
                    httpSign: 0,
                    httpFull: 0,
                    name: c || "",
                    result: "",
                    tookTime: 0,
                    errorNode: "",
                    errorCode: "",
                    errorMessage: "",
                    errorRequestId: "",
                    errorStatusCode: 0,
                    errorServiceName: "",
                    tracePlatform: "cos-js-sdk-v5",
                    traceId: o || l(),
                    bucket: i,
                    appid: y,
                    partNumber: 0,
                    retryTimes: 0,
                    reqUrl: "",
                    customId: h || "",
                    deviceType: v.deviceType,
                    devicePlatform: v.devicePlatform,
                    deviceName: v.deviceName,
                    md5StartTime: 0,
                    md5EndTime: 0,
                    signStartTime: 0,
                    signEndTime: 0,
                    httpStartTime: 0,
                    httpEndTime: 0,
                    startTime: (new Date).getTime(),
                    endTime: 0
                }, this.beacon = u(m)
            }

            return o(e, [{
                key: "formatResult", value: function (e, t) {
                    var n, r, o, i, a, s, c = (new Date).getTime() - this.params.startTime, u = d(),
                        l = e ? (null == e ? void 0 : e.code) || (null == e || null === (n = e.error) || void 0 === n ? void 0 : n.code) || (null == e || null === (r = e.error) || void 0 === r ? void 0 : r.Code) : "",
                        p = e ? (null == e ? void 0 : e.message) || (null == e || null === (o = e.error) || void 0 === o ? void 0 : o.message) || (null == e || null === (i = e.error) || void 0 === i ? void 0 : i.Message) : "",
                        f = e ? (null == e ? void 0 : e.resource) || (null == e || null === (a = e.error) || void 0 === a ? void 0 : a.resource) || (null == e || null === (s = e.error) || void 0 === s ? void 0 : s.Resource) : "",
                        h = e ? null == e ? void 0 : e.statusCode : t.statusCode,
                        m = e ? (null == e ? void 0 : e.headers) && (null == e ? void 0 : e.headers["x-cos-request-id"]) : (null == t ? void 0 : t.headers) && (null == t ? void 0 : t.headers["x-cos-request-id"]),
                        g = e ? m ? "Server" : "Client" : "";
                    if (Object.assign(this.params, {
                        tookTime: c,
                        networkType: u,
                        httpMd5: this.params.md5EndTime - this.params.md5StartTime,
                        httpSign: this.params.signEndTime - this.params.signStartTime,
                        httpFull: this.params.httpEndTime - this.params.httpStartTime,
                        result: e ? "Fail" : "Success",
                        errorType: g,
                        errorCode: l,
                        errorStatusCode: h,
                        errorMessage: p,
                        errorServiceName: f,
                        errorRequestId: m
                    }), !e || l && p || (this.params.fullError = e ? JSON.stringify(e) : ""), "getObject" === this.params.name && (this.params.size = t ? t.headers && t.headers["content-length"] : -1), this.params.reqUrl) try {
                        var y = /^http(s)?:\/\/(.*?)\//.exec(this.params.reqUrl);
                        this.params.host = y[2]
                    } catch (e) {
                        this.params.host = this.params.reqUrl
                    }
                    this.sendEvents()
                }
            }, {
                key: "setParams", value: function (e) {
                    Object.assign(this.params, e)
                }
            }, {
                key: "sendEvents", value: function () {
                    if (!C.includes(this.params.name) || this.deepTracker) {
                        var e,
                            t = (e = this.params.name, k.includes(e) ? "cos_upload" : S.includes(e) ? "cos_download" : "base_service"),
                            n = function (e) {
                                var t = {},
                                    n = "Success" === e.result ? ["tracePlatform", "cossdkVersion", "region", "bucket", "appid", "networkType", "host", "accelerate", "requestPath", "partNumber", "size", "name", "result", "tookTime", "errorRequestId", "retryTimes", "reqUrl", "customId", "deviceType", "devicePlatform", "deviceName"] : ["tracePlatform", "cossdkVersion", "region", "networkType", "host", "accelerate", "requestPath", "size", "httpMd5", "httpSign", "httpFull", "name", "result", "tookTime", "errorNode", "errorCode", "errorMessage", "errorRequestId", "errorStatusCode", "errorServiceName", "errorType", "traceId", "bucket", "appid", "partNumber", "retryTimes", "reqUrl", "customId", "fullError", "deviceType", "devicePlatform", "deviceName"];
                                for (var r in e) n.includes(r) && (t[b(r)] = e[r]);
                                return t
                            }(this.params);
                        this.beacon || (this.beacon = u(this.delay || 5e3)), 0 === this.delay ? this.beacon && this.beacon.onDirectUserAction(t, n) : this.beacon && this.beacon.onUserAction(t, n)
                    }
                }
            }, {
                key: "generateSubTracker", value: function (t) {
                    return Object.assign(t, {
                        parent: this,
                        deepTracker: this.deepTracker,
                        traceId: this.params.traceId,
                        bucket: this.params.bucket,
                        region: this.params.region,
                        fileKey: this.params.requestPath,
                        customId: this.params.customId,
                        delay: this.delay
                    }), new e(t)
                }
            }]), e
        }();
        e.exports = w
    }, function (e) {
        e.exports = JSON.parse('{"name":"cos-js-sdk-v5","version":"1.4.8","description":"JavaScript SDK for [腾讯云对象存储](https://cloud.tencent.com/product/cos)","main":"dist/cos-js-sdk-v5.js","types":"index.d.ts","scripts":{"server":"node server/sts.js","dev":"cross-env NODE_ENV=development webpack -w --mode=development","build":"cross-env NODE_ENV=production webpack --mode=production","cos-auth.min.js":"uglifyjs ./demo/common/cos-auth.js -o ./demo/common/cos-auth.min.js -c -m"},"repository":{"type":"git","url":"git+https://github.com/tencentyun/cos-js-sdk-v5.git"},"keywords":[],"author":"carsonxu","license":"ISC","bugs":{"url":"https://github.com/tencentyun/cos-js-sdk-v5/issues"},"homepage":"https://github.com/tencentyun/cos-js-sdk-v5#readme","dependencies":{"@xmldom/xmldom":"^0.8.2"},"devDependencies":{"@babel/core":"7.17.9","@babel/plugin-transform-runtime":"7.18.10","@babel/preset-env":"7.16.11","babel-loader":"8.2.5","body-parser":"^1.18.3","cross-env":"^5.2.0","express":"^4.16.4","qcloud-cos-sts":"^3.0.2","request":"^2.87.0","terser-webpack-plugin":"4.2.3","webpack":"4.46.0","webpack-cli":"4.10.0"}}')
    }, function (e, t) {
        var n = function (e) {
            var t = {}, n = function (e) {
                return !t[e] && (t[e] = []), t[e]
            };
            e.on = function (e, t) {
                n(e).push(t)
            }, e.off = function (e, t) {
                for (var r = n(e), o = r.length - 1; o >= 0; o--) t === r[o] && r.splice(o, 1)
            }, e.emit = function (e, t) {
                for (var r = n(e).map((function (e) {
                    return e
                })), o = 0; o < r.length; o++) r[o](t)
            }
        };
        e.exports.init = n, e.exports.EventProxy = function () {
            n(this)
        }
    }, function (e, t, n) {
        var r, o, i = n(1), a = "cos_sdk_upload_cache", s = function () {
            try {
                var e = JSON.parse(localStorage.getItem(a))
            } catch (e) {
            }
            e || (e = []), r = e
        }, c = function () {
            try {
                r.length ? localStorage.setItem(a, JSON.stringify(r)) : localStorage.removeItem(a)
            } catch (e) {
            }
        }, u = function () {
            if (!r) {
                s.call(this);
                for (var e = !1, t = Math.round(Date.now() / 1e3), n = r.length - 1; n >= 0; n--) {
                    var o = r[n][2];
                    (!o || o + 2592e3 < t) && (r.splice(n, 1), e = !0)
                }
                e && c()
            }
        }, l = function () {
            o || (o = setTimeout((function () {
                c(), o = null
            }), 400))
        }, d = {
            using: {}, setUsing: function (e) {
                d.using[e] = !0
            }, removeUsing: function (e) {
                delete d.using[e]
            }, getFileId: function (e, t, n, r) {
                return e.name && e.size && e.lastModifiedDate && t ? i.md5([e.name, e.size, e.lastModifiedDate, t, n, r].join("::")) : null
            }, getCopyFileId: function (e, t, n, r, o) {
                var a = t["content-length"], s = t.etag || "", c = t["last-modified"];
                return e && n ? i.md5([e, a, s, c, n, r, o].join("::")) : null
            }, getUploadIdList: function (e) {
                if (!e) return null;
                u.call(this);
                for (var t = [], n = 0; n < r.length; n++) r[n][0] === e && t.push(r[n][1]);
                return t.length ? t : null
            }, saveUploadId: function (e, t, n) {
                if (u.call(this), e) {
                    for (var o = r.length - 1; o >= 0; o--) {
                        var i = r[o];
                        i[0] === e && i[1] === t && r.splice(o, 1)
                    }
                    r.unshift([e, t, Math.round(Date.now() / 1e3)]), r.length > n && r.splice(n), l()
                }
            }, removeUploadId: function (e) {
                u.call(this), delete d.using[e];
                for (var t = r.length - 1; t >= 0; t--) r[t][1] === e && r.splice(t, 1);
                l()
            }
        };
        e.exports = d
    }, function (e, t, n) {
        var r = n(12);
        e.exports = r
    }, function (e, t, n) {
        "use strict";
        var r = n(1), o = n(9), i = n(25), a = n(26), s = n(28), c = n(8), u = {
            AppId: "",
            SecretId: "",
            SecretKey: "",
            SecurityToken: "",
            ChunkRetryTimes: 2,
            FileParallelLimit: 3,
            ChunkParallelLimit: 3,
            ChunkSize: 1048576,
            SliceSize: 1048576,
            CopyChunkParallelLimit: 20,
            CopyChunkSize: 10485760,
            CopySliceSize: 10485760,
            MaxPartNumber: 1e4,
            ProgressInterval: 1e3,
            Domain: "",
            ServiceDomain: "",
            Protocol: "",
            CompatibilityMode: !1,
            ForcePathStyle: !1,
            UseRawKey: !1,
            Timeout: 0,
            CorrectClockSkew: !0,
            SystemClockOffset: 0,
            UploadCheckContentMd5: !1,
            UploadQueueSize: 1e4,
            UploadAddMetaMd5: !1,
            UploadIdCacheLimit: 50,
            UseAccelerate: !1,
            ForceSignHost: !0,
            EnableTracker: !1,
            DeepTracker: !1,
            TrackerDelay: 5e3,
            CustomId: ""
        }, l = function (e) {
            this.options = r.extend(r.clone(u), e || {}), this.options.FileParallelLimit = Math.max(1, this.options.FileParallelLimit), this.options.ChunkParallelLimit = Math.max(1, this.options.ChunkParallelLimit), this.options.ChunkRetryTimes = Math.max(0, this.options.ChunkRetryTimes), this.options.ChunkSize = Math.max(1048576, this.options.ChunkSize), this.options.CopyChunkParallelLimit = Math.max(1, this.options.CopyChunkParallelLimit), this.options.CopyChunkSize = Math.max(1048576, this.options.CopyChunkSize), this.options.CopySliceSize = Math.max(0, this.options.CopySliceSize), this.options.MaxPartNumber = Math.max(1024, Math.min(1e4, this.options.MaxPartNumber)), this.options.Timeout = Math.max(0, this.options.Timeout), this.options.AppId, this.options.SecretId && this.options.SecretId.indexOf(" "), this.options.SecretKey && this.options.SecretKey.indexOf(" "), r.isNode(), o.init(this), i.init(this)
        };
        a.init(l, i), s.init(l, i), l.util = {
            md5: r.md5,
            xml2json: r.xml2json,
            json2xml: r.json2xml
        }, l.getAuthorization = r.getAuth, l.version = c.version, e.exports = l
    }, function (module, exports, __webpack_require__) {
        (function (process, global, module) {
            var __WEBPACK_AMD_DEFINE_RESULT__, _typeof = __webpack_require__(0);
            (function () {
                "use strict";
                var ERROR = "input is invalid type",
                    WINDOW = "object" === ("undefined" == typeof window ? "undefined" : _typeof(window)),
                    root = WINDOW ? window : {};
                root.JS_MD5_NO_WINDOW && (WINDOW = !1);
                var WEB_WORKER = !WINDOW && "object" === ("undefined" == typeof self ? "undefined" : _typeof(self)),
                    NODE_JS = !root.JS_MD5_NO_NODE_JS && "object" === (void 0 === process ? "undefined" : _typeof(process)) && process.versions && process.versions.node;
                NODE_JS ? root = global : WEB_WORKER && (root = self);
                var COMMON_JS = !root.JS_MD5_NO_COMMON_JS && "object" === _typeof(module) && module.exports,
                    AMD = __webpack_require__(14),
                    ARRAY_BUFFER = !root.JS_MD5_NO_ARRAY_BUFFER && "undefined" != typeof ArrayBuffer,
                    HEX_CHARS = "0123456789abcdef".split(""), EXTRA = [128, 32768, 8388608, -2147483648],
                    SHIFT = [0, 8, 16, 24],
                    OUTPUT_TYPES = ["hex", "array", "digest", "buffer", "arrayBuffer", "base64"],
                    BASE64_ENCODE_CHAR = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split(""),
                    blocks = [], buffer8;
                if (ARRAY_BUFFER) {
                    var buffer = new ArrayBuffer(68);
                    buffer8 = new Uint8Array(buffer), blocks = new Uint32Array(buffer)
                }
                !root.JS_MD5_NO_NODE_JS && Array.isArray || (Array.isArray = function (e) {
                    return "[object Array]" === Object.prototype.toString.call(e)
                }), !ARRAY_BUFFER || !root.JS_MD5_NO_ARRAY_BUFFER_IS_VIEW && ArrayBuffer.isView || (ArrayBuffer.isView = function (e) {
                    return "object" === _typeof(e) && e.buffer && e.buffer.constructor === ArrayBuffer
                });
                var createOutputMethod = function (e) {
                    return function (t, n) {
                        return new Md5(!0).update(t, n)[e]()
                    }
                }, createMethod = function () {
                    var e = createOutputMethod("hex");
                    NODE_JS && (e = nodeWrap(e)), e.getCtx = e.create = function () {
                        return new Md5
                    }, e.update = function (t) {
                        return e.create().update(t)
                    };
                    for (var t = 0; t < OUTPUT_TYPES.length; ++t) {
                        var n = OUTPUT_TYPES[t];
                        e[n] = createOutputMethod(n)
                    }
                    return e
                }, nodeWrap = function nodeWrap(method) {
                    var crypto = eval("require('crypto')"), Buffer = eval("require('buffer').Buffer"),
                        nodeMethod = function (e) {
                            if ("string" == typeof e) return crypto.createHash("md5").update(e, "utf8").digest("hex");
                            if (null == e) throw ERROR;
                            return e.constructor === ArrayBuffer && (e = new Uint8Array(e)), Array.isArray(e) || ArrayBuffer.isView(e) || e.constructor === Buffer ? crypto.createHash("md5").update(new Buffer(e)).digest("hex") : method(e)
                        };
                    return nodeMethod
                };

                function Md5(e) {
                    if (e) blocks[0] = blocks[16] = blocks[1] = blocks[2] = blocks[3] = blocks[4] = blocks[5] = blocks[6] = blocks[7] = blocks[8] = blocks[9] = blocks[10] = blocks[11] = blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0, this.blocks = blocks, this.buffer8 = buffer8; else if (ARRAY_BUFFER) {
                        var t = new ArrayBuffer(68);
                        this.buffer8 = new Uint8Array(t), this.blocks = new Uint32Array(t)
                    } else this.blocks = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
                    this.h0 = this.h1 = this.h2 = this.h3 = this.start = this.bytes = this.hBytes = 0, this.finalized = this.hashed = !1, this.first = !0
                }

                Md5.prototype.update = function (e, t) {
                    if (!this.finalized) {
                        for (var n, r, o = 0, i = e.length, a = this.blocks, s = this.buffer8; o < i;) {
                            if (this.hashed && (this.hashed = !1, a[0] = a[16], a[16] = a[1] = a[2] = a[3] = a[4] = a[5] = a[6] = a[7] = a[8] = a[9] = a[10] = a[11] = a[12] = a[13] = a[14] = a[15] = 0), ARRAY_BUFFER) for (r = this.start; o < i && r < 64; ++o) n = e.charCodeAt(o), t || n < 128 ? s[r++] = n : n < 2048 ? (s[r++] = 192 | n >> 6, s[r++] = 128 | 63 & n) : n < 55296 || n >= 57344 ? (s[r++] = 224 | n >> 12, s[r++] = 128 | n >> 6 & 63, s[r++] = 128 | 63 & n) : (n = 65536 + ((1023 & n) << 10 | 1023 & e.charCodeAt(++o)), s[r++] = 240 | n >> 18, s[r++] = 128 | n >> 12 & 63, s[r++] = 128 | n >> 6 & 63, s[r++] = 128 | 63 & n); else for (r = this.start; o < i && r < 64; ++o) n = e.charCodeAt(o), t || n < 128 ? a[r >> 2] |= n << SHIFT[3 & r++] : n < 2048 ? (a[r >> 2] |= (192 | n >> 6) << SHIFT[3 & r++], a[r >> 2] |= (128 | 63 & n) << SHIFT[3 & r++]) : n < 55296 || n >= 57344 ? (a[r >> 2] |= (224 | n >> 12) << SHIFT[3 & r++], a[r >> 2] |= (128 | n >> 6 & 63) << SHIFT[3 & r++], a[r >> 2] |= (128 | 63 & n) << SHIFT[3 & r++]) : (n = 65536 + ((1023 & n) << 10 | 1023 & e.charCodeAt(++o)), a[r >> 2] |= (240 | n >> 18) << SHIFT[3 & r++], a[r >> 2] |= (128 | n >> 12 & 63) << SHIFT[3 & r++], a[r >> 2] |= (128 | n >> 6 & 63) << SHIFT[3 & r++], a[r >> 2] |= (128 | 63 & n) << SHIFT[3 & r++]);
                            this.lastByteIndex = r, this.bytes += r - this.start, r >= 64 ? (this.start = r - 64, this.hash(), this.hashed = !0) : this.start = r
                        }
                        return this.bytes > 4294967295 && (this.hBytes += this.bytes / 4294967296 << 0, this.bytes = this.bytes % 4294967296), this
                    }
                }, Md5.prototype.finalize = function () {
                    if (!this.finalized) {
                        this.finalized = !0;
                        var e = this.blocks, t = this.lastByteIndex;
                        e[t >> 2] |= EXTRA[3 & t], t >= 56 && (this.hashed || this.hash(), e[0] = e[16], e[16] = e[1] = e[2] = e[3] = e[4] = e[5] = e[6] = e[7] = e[8] = e[9] = e[10] = e[11] = e[12] = e[13] = e[14] = e[15] = 0), e[14] = this.bytes << 3, e[15] = this.hBytes << 3 | this.bytes >>> 29, this.hash()
                    }
                }, Md5.prototype.hash = function () {
                    var e, t, n, r, o, i, a = this.blocks;
                    this.first ? t = ((t = ((e = ((e = a[0] - 680876937) << 7 | e >>> 25) - 271733879 << 0) ^ (n = ((n = (-271733879 ^ (r = ((r = (-1732584194 ^ 2004318071 & e) + a[1] - 117830708) << 12 | r >>> 20) + e << 0) & (-271733879 ^ e)) + a[2] - 1126478375) << 17 | n >>> 15) + r << 0) & (r ^ e)) + a[3] - 1316259209) << 22 | t >>> 10) + n << 0 : (e = this.h0, t = this.h1, n = this.h2, t = ((t += ((e = ((e += ((r = this.h3) ^ t & (n ^ r)) + a[0] - 680876936) << 7 | e >>> 25) + t << 0) ^ (n = ((n += (t ^ (r = ((r += (n ^ e & (t ^ n)) + a[1] - 389564586) << 12 | r >>> 20) + e << 0) & (e ^ t)) + a[2] + 606105819) << 17 | n >>> 15) + r << 0) & (r ^ e)) + a[3] - 1044525330) << 22 | t >>> 10) + n << 0), t = ((t += ((e = ((e += (r ^ t & (n ^ r)) + a[4] - 176418897) << 7 | e >>> 25) + t << 0) ^ (n = ((n += (t ^ (r = ((r += (n ^ e & (t ^ n)) + a[5] + 1200080426) << 12 | r >>> 20) + e << 0) & (e ^ t)) + a[6] - 1473231341) << 17 | n >>> 15) + r << 0) & (r ^ e)) + a[7] - 45705983) << 22 | t >>> 10) + n << 0, t = ((t += ((e = ((e += (r ^ t & (n ^ r)) + a[8] + 1770035416) << 7 | e >>> 25) + t << 0) ^ (n = ((n += (t ^ (r = ((r += (n ^ e & (t ^ n)) + a[9] - 1958414417) << 12 | r >>> 20) + e << 0) & (e ^ t)) + a[10] - 42063) << 17 | n >>> 15) + r << 0) & (r ^ e)) + a[11] - 1990404162) << 22 | t >>> 10) + n << 0, t = ((t += ((e = ((e += (r ^ t & (n ^ r)) + a[12] + 1804603682) << 7 | e >>> 25) + t << 0) ^ (n = ((n += (t ^ (r = ((r += (n ^ e & (t ^ n)) + a[13] - 40341101) << 12 | r >>> 20) + e << 0) & (e ^ t)) + a[14] - 1502002290) << 17 | n >>> 15) + r << 0) & (r ^ e)) + a[15] + 1236535329) << 22 | t >>> 10) + n << 0, t = ((t += ((r = ((r += (t ^ n & ((e = ((e += (n ^ r & (t ^ n)) + a[1] - 165796510) << 5 | e >>> 27) + t << 0) ^ t)) + a[6] - 1069501632) << 9 | r >>> 23) + e << 0) ^ e & ((n = ((n += (e ^ t & (r ^ e)) + a[11] + 643717713) << 14 | n >>> 18) + r << 0) ^ r)) + a[0] - 373897302) << 20 | t >>> 12) + n << 0, t = ((t += ((r = ((r += (t ^ n & ((e = ((e += (n ^ r & (t ^ n)) + a[5] - 701558691) << 5 | e >>> 27) + t << 0) ^ t)) + a[10] + 38016083) << 9 | r >>> 23) + e << 0) ^ e & ((n = ((n += (e ^ t & (r ^ e)) + a[15] - 660478335) << 14 | n >>> 18) + r << 0) ^ r)) + a[4] - 405537848) << 20 | t >>> 12) + n << 0, t = ((t += ((r = ((r += (t ^ n & ((e = ((e += (n ^ r & (t ^ n)) + a[9] + 568446438) << 5 | e >>> 27) + t << 0) ^ t)) + a[14] - 1019803690) << 9 | r >>> 23) + e << 0) ^ e & ((n = ((n += (e ^ t & (r ^ e)) + a[3] - 187363961) << 14 | n >>> 18) + r << 0) ^ r)) + a[8] + 1163531501) << 20 | t >>> 12) + n << 0, t = ((t += ((r = ((r += (t ^ n & ((e = ((e += (n ^ r & (t ^ n)) + a[13] - 1444681467) << 5 | e >>> 27) + t << 0) ^ t)) + a[2] - 51403784) << 9 | r >>> 23) + e << 0) ^ e & ((n = ((n += (e ^ t & (r ^ e)) + a[7] + 1735328473) << 14 | n >>> 18) + r << 0) ^ r)) + a[12] - 1926607734) << 20 | t >>> 12) + n << 0, t = ((t += ((i = (r = ((r += ((o = t ^ n) ^ (e = ((e += (o ^ r) + a[5] - 378558) << 4 | e >>> 28) + t << 0)) + a[8] - 2022574463) << 11 | r >>> 21) + e << 0) ^ e) ^ (n = ((n += (i ^ t) + a[11] + 1839030562) << 16 | n >>> 16) + r << 0)) + a[14] - 35309556) << 23 | t >>> 9) + n << 0, t = ((t += ((i = (r = ((r += ((o = t ^ n) ^ (e = ((e += (o ^ r) + a[1] - 1530992060) << 4 | e >>> 28) + t << 0)) + a[4] + 1272893353) << 11 | r >>> 21) + e << 0) ^ e) ^ (n = ((n += (i ^ t) + a[7] - 155497632) << 16 | n >>> 16) + r << 0)) + a[10] - 1094730640) << 23 | t >>> 9) + n << 0, t = ((t += ((i = (r = ((r += ((o = t ^ n) ^ (e = ((e += (o ^ r) + a[13] + 681279174) << 4 | e >>> 28) + t << 0)) + a[0] - 358537222) << 11 | r >>> 21) + e << 0) ^ e) ^ (n = ((n += (i ^ t) + a[3] - 722521979) << 16 | n >>> 16) + r << 0)) + a[6] + 76029189) << 23 | t >>> 9) + n << 0, t = ((t += ((i = (r = ((r += ((o = t ^ n) ^ (e = ((e += (o ^ r) + a[9] - 640364487) << 4 | e >>> 28) + t << 0)) + a[12] - 421815835) << 11 | r >>> 21) + e << 0) ^ e) ^ (n = ((n += (i ^ t) + a[15] + 530742520) << 16 | n >>> 16) + r << 0)) + a[2] - 995338651) << 23 | t >>> 9) + n << 0, t = ((t += ((r = ((r += (t ^ ((e = ((e += (n ^ (t | ~r)) + a[0] - 198630844) << 6 | e >>> 26) + t << 0) | ~n)) + a[7] + 1126891415) << 10 | r >>> 22) + e << 0) ^ ((n = ((n += (e ^ (r | ~t)) + a[14] - 1416354905) << 15 | n >>> 17) + r << 0) | ~e)) + a[5] - 57434055) << 21 | t >>> 11) + n << 0, t = ((t += ((r = ((r += (t ^ ((e = ((e += (n ^ (t | ~r)) + a[12] + 1700485571) << 6 | e >>> 26) + t << 0) | ~n)) + a[3] - 1894986606) << 10 | r >>> 22) + e << 0) ^ ((n = ((n += (e ^ (r | ~t)) + a[10] - 1051523) << 15 | n >>> 17) + r << 0) | ~e)) + a[1] - 2054922799) << 21 | t >>> 11) + n << 0, t = ((t += ((r = ((r += (t ^ ((e = ((e += (n ^ (t | ~r)) + a[8] + 1873313359) << 6 | e >>> 26) + t << 0) | ~n)) + a[15] - 30611744) << 10 | r >>> 22) + e << 0) ^ ((n = ((n += (e ^ (r | ~t)) + a[6] - 1560198380) << 15 | n >>> 17) + r << 0) | ~e)) + a[13] + 1309151649) << 21 | t >>> 11) + n << 0, t = ((t += ((r = ((r += (t ^ ((e = ((e += (n ^ (t | ~r)) + a[4] - 145523070) << 6 | e >>> 26) + t << 0) | ~n)) + a[11] - 1120210379) << 10 | r >>> 22) + e << 0) ^ ((n = ((n += (e ^ (r | ~t)) + a[2] + 718787259) << 15 | n >>> 17) + r << 0) | ~e)) + a[9] - 343485551) << 21 | t >>> 11) + n << 0, this.first ? (this.h0 = e + 1732584193 << 0, this.h1 = t - 271733879 << 0, this.h2 = n - 1732584194 << 0, this.h3 = r + 271733878 << 0, this.first = !1) : (this.h0 = this.h0 + e << 0, this.h1 = this.h1 + t << 0, this.h2 = this.h2 + n << 0, this.h3 = this.h3 + r << 0)
                }, Md5.prototype.hex = function () {
                    this.finalize();
                    var e = this.h0, t = this.h1, n = this.h2, r = this.h3;
                    return HEX_CHARS[e >> 4 & 15] + HEX_CHARS[15 & e] + HEX_CHARS[e >> 12 & 15] + HEX_CHARS[e >> 8 & 15] + HEX_CHARS[e >> 20 & 15] + HEX_CHARS[e >> 16 & 15] + HEX_CHARS[e >> 28 & 15] + HEX_CHARS[e >> 24 & 15] + HEX_CHARS[t >> 4 & 15] + HEX_CHARS[15 & t] + HEX_CHARS[t >> 12 & 15] + HEX_CHARS[t >> 8 & 15] + HEX_CHARS[t >> 20 & 15] + HEX_CHARS[t >> 16 & 15] + HEX_CHARS[t >> 28 & 15] + HEX_CHARS[t >> 24 & 15] + HEX_CHARS[n >> 4 & 15] + HEX_CHARS[15 & n] + HEX_CHARS[n >> 12 & 15] + HEX_CHARS[n >> 8 & 15] + HEX_CHARS[n >> 20 & 15] + HEX_CHARS[n >> 16 & 15] + HEX_CHARS[n >> 28 & 15] + HEX_CHARS[n >> 24 & 15] + HEX_CHARS[r >> 4 & 15] + HEX_CHARS[15 & r] + HEX_CHARS[r >> 12 & 15] + HEX_CHARS[r >> 8 & 15] + HEX_CHARS[r >> 20 & 15] + HEX_CHARS[r >> 16 & 15] + HEX_CHARS[r >> 28 & 15] + HEX_CHARS[r >> 24 & 15]
                }, Md5.prototype.toString = Md5.prototype.hex, Md5.prototype.digest = function (e) {
                    if ("hex" === e) return this.hex();
                    this.finalize();
                    var t = this.h0, n = this.h1, r = this.h2, o = this.h3;
                    return [255 & t, t >> 8 & 255, t >> 16 & 255, t >> 24 & 255, 255 & n, n >> 8 & 255, n >> 16 & 255, n >> 24 & 255, 255 & r, r >> 8 & 255, r >> 16 & 255, r >> 24 & 255, 255 & o, o >> 8 & 255, o >> 16 & 255, o >> 24 & 255]
                }, Md5.prototype.array = Md5.prototype.digest, Md5.prototype.arrayBuffer = function () {
                    this.finalize();
                    var e = new ArrayBuffer(16), t = new Uint32Array(e);
                    return t[0] = this.h0, t[1] = this.h1, t[2] = this.h2, t[3] = this.h3, e
                }, Md5.prototype.buffer = Md5.prototype.arrayBuffer, Md5.prototype.base64 = function () {
                    for (var e, t, n, r = "", o = this.array(), i = 0; i < 15;) e = o[i++], t = o[i++], n = o[i++], r += BASE64_ENCODE_CHAR[e >>> 2] + BASE64_ENCODE_CHAR[63 & (e << 4 | t >>> 4)] + BASE64_ENCODE_CHAR[63 & (t << 2 | n >>> 6)] + BASE64_ENCODE_CHAR[63 & n];
                    return e = o[i], r += BASE64_ENCODE_CHAR[e >>> 2] + BASE64_ENCODE_CHAR[e << 4 & 63] + "=="
                };
                var exports = createMethod();
                COMMON_JS ? module.exports = exports : (root.md5 = exports, AMD && (__WEBPACK_AMD_DEFINE_RESULT__ = function () {
                    return exports
                }.call(exports, __webpack_require__, exports, module), void 0 === __WEBPACK_AMD_DEFINE_RESULT__ || (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)))
            })()
        }).call(this, __webpack_require__(3), __webpack_require__(4), __webpack_require__(5)(module))
    }, function (e, t) {
        (function (t) {
            e.exports = t
        }).call(this, {})
    }, function (e, t, n) {
        (function (e) {
            var t, r, o, i, a, s, c, u = n(0), l = l || function (e, t) {
                var n = {}, r = n.lib = {}, o = function () {
                }, i = r.Base = {
                    extend: function (e) {
                        o.prototype = this;
                        var t = new o;
                        return e && t.mixIn(e), t.hasOwnProperty("init") || (t.init = function () {
                            t.$super.init.apply(this, arguments)
                        }), t.init.prototype = t, t.$super = this, t
                    }, create: function () {
                        var e = this.extend();
                        return e.init.apply(e, arguments), e
                    }, init: function () {
                    }, mixIn: function (e) {
                        for (var t in e) e.hasOwnProperty(t) && (this[t] = e[t]);
                        e.hasOwnProperty("toString") && (this.toString = e.toString)
                    }, clone: function () {
                        return this.init.prototype.extend(this)
                    }
                }, a = r.WordArray = i.extend({
                    init: function (e, t) {
                        e = this.words = e || [], this.sigBytes = null != t ? t : 4 * e.length
                    }, toString: function (e) {
                        return (e || c).stringify(this)
                    }, concat: function (e) {
                        var t = this.words, n = e.words, r = this.sigBytes;
                        if (e = e.sigBytes, this.clamp(), r % 4) for (var o = 0; o < e; o++) t[r + o >>> 2] |= (n[o >>> 2] >>> 24 - o % 4 * 8 & 255) << 24 - (r + o) % 4 * 8; else if (65535 < n.length) for (o = 0; o < e; o += 4) t[r + o >>> 2] = n[o >>> 2]; else t.push.apply(t, n);
                        return this.sigBytes += e, this
                    }, clamp: function () {
                        var t = this.words, n = this.sigBytes;
                        t[n >>> 2] &= 4294967295 << 32 - n % 4 * 8, t.length = e.ceil(n / 4)
                    }, clone: function () {
                        var e = i.clone.call(this);
                        return e.words = this.words.slice(0), e
                    }, random: function (t) {
                        for (var n = [], r = 0; r < t; r += 4) n.push(4294967296 * e.random() | 0);
                        return new a.init(n, t)
                    }
                }), s = n.enc = {}, c = s.Hex = {
                    stringify: function (e) {
                        var t = e.words;
                        e = e.sigBytes;
                        for (var n = [], r = 0; r < e; r++) {
                            var o = t[r >>> 2] >>> 24 - r % 4 * 8 & 255;
                            n.push((o >>> 4).toString(16)), n.push((15 & o).toString(16))
                        }
                        return n.join("")
                    }, parse: function (e) {
                        for (var t = e.length, n = [], r = 0; r < t; r += 2) n[r >>> 3] |= parseInt(e.substr(r, 2), 16) << 24 - r % 8 * 4;
                        return new a.init(n, t / 2)
                    }
                }, u = s.Latin1 = {
                    stringify: function (e) {
                        var t = e.words;
                        e = e.sigBytes;
                        for (var n = [], r = 0; r < e; r++) n.push(String.fromCharCode(t[r >>> 2] >>> 24 - r % 4 * 8 & 255));
                        return n.join("")
                    }, parse: function (e) {
                        for (var t = e.length, n = [], r = 0; r < t; r++) n[r >>> 2] |= (255 & e.charCodeAt(r)) << 24 - r % 4 * 8;
                        return new a.init(n, t)
                    }
                }, l = s.Utf8 = {
                    stringify: function (e) {
                        try {
                            return decodeURIComponent(escape(u.stringify(e)))
                        } catch (e) {
                            throw Error("Malformed UTF-8 data")
                        }
                    }, parse: function (e) {
                        return u.parse(unescape(encodeURIComponent(e)))
                    }
                }, d = r.BufferedBlockAlgorithm = i.extend({
                    reset: function () {
                        this._data = new a.init, this._nDataBytes = 0
                    }, _append: function (e) {
                        "string" == typeof e && (e = l.parse(e)), this._data.concat(e), this._nDataBytes += e.sigBytes
                    }, _process: function (t) {
                        var n = this._data, r = n.words, o = n.sigBytes, i = this.blockSize, s = o / (4 * i);
                        if (t = (s = t ? e.ceil(s) : e.max((0 | s) - this._minBufferSize, 0)) * i, o = e.min(4 * t, o), t) {
                            for (var c = 0; c < t; c += i) this._doProcessBlock(r, c);
                            c = r.splice(0, t), n.sigBytes -= o
                        }
                        return new a.init(c, o)
                    }, clone: function () {
                        var e = i.clone.call(this);
                        return e._data = this._data.clone(), e
                    }, _minBufferSize: 0
                });
                r.Hasher = d.extend({
                    cfg: i.extend(), init: function (e) {
                        this.cfg = this.cfg.extend(e), this.reset()
                    }, reset: function () {
                        d.reset.call(this), this._doReset()
                    }, update: function (e) {
                        return this._append(e), this._process(), this
                    }, finalize: function (e) {
                        return e && this._append(e), this._doFinalize()
                    }, blockSize: 16, _createHelper: function (e) {
                        return function (t, n) {
                            return new e.init(n).finalize(t)
                        }
                    }, _createHmacHelper: function (e) {
                        return function (t, n) {
                            return new p.HMAC.init(e, n).finalize(t)
                        }
                    }
                });
                var p = n.algo = {};
                return n
            }(Math);
            r = (a = (t = l).lib).WordArray, o = a.Hasher, i = [], a = t.algo.SHA1 = o.extend({
                _doReset: function () {
                    this._hash = new r.init([1732584193, 4023233417, 2562383102, 271733878, 3285377520])
                }, _doProcessBlock: function (e, t) {
                    for (var n = this._hash.words, r = n[0], o = n[1], a = n[2], s = n[3], c = n[4], u = 0; 80 > u; u++) {
                        if (16 > u) i[u] = 0 | e[t + u]; else {
                            var l = i[u - 3] ^ i[u - 8] ^ i[u - 14] ^ i[u - 16];
                            i[u] = l << 1 | l >>> 31
                        }
                        l = (r << 5 | r >>> 27) + c + i[u], l = 20 > u ? l + (1518500249 + (o & a | ~o & s)) : 40 > u ? l + (1859775393 + (o ^ a ^ s)) : 60 > u ? l + ((o & a | o & s | a & s) - 1894007588) : l + ((o ^ a ^ s) - 899497514), c = s, s = a, a = o << 30 | o >>> 2, o = r, r = l
                    }
                    n[0] = n[0] + r | 0, n[1] = n[1] + o | 0, n[2] = n[2] + a | 0, n[3] = n[3] + s | 0, n[4] = n[4] + c | 0
                }, _doFinalize: function () {
                    var e = this._data, t = e.words, n = 8 * this._nDataBytes, r = 8 * e.sigBytes;
                    return t[r >>> 5] |= 128 << 24 - r % 32, t[14 + (r + 64 >>> 9 << 4)] = Math.floor(n / 4294967296), t[15 + (r + 64 >>> 9 << 4)] = n, e.sigBytes = 4 * t.length, this._process(), this._hash
                }, clone: function () {
                    var e = o.clone.call(this);
                    return e._hash = this._hash.clone(), e
                }
            }), t.SHA1 = o._createHelper(a), t.HmacSHA1 = o._createHmacHelper(a), function () {
                var e = l, t = e.enc.Utf8;
                e.algo.HMAC = e.lib.Base.extend({
                    init: function (e, n) {
                        e = this._hasher = new e.init, "string" == typeof n && (n = t.parse(n));
                        var r = e.blockSize, o = 4 * r;
                        n.sigBytes > o && (n = e.finalize(n)), n.clamp();
                        for (var i = this._oKey = n.clone(), a = this._iKey = n.clone(), s = i.words, c = a.words, u = 0; u < r; u++) s[u] ^= 1549556828, c[u] ^= 909522486;
                        i.sigBytes = a.sigBytes = o, this.reset()
                    }, reset: function () {
                        var e = this._hasher;
                        e.reset(), e.update(this._iKey)
                    }, update: function (e) {
                        return this._hasher.update(e), this
                    }, finalize: function (e) {
                        var t = this._hasher;
                        return e = t.finalize(e), t.reset(), t.finalize(this._oKey.clone().concat(e))
                    }
                })
            }(), c = (s = l).lib.WordArray, s.enc.Base64 = {
                stringify: function (e) {
                    var t = e.words, n = e.sigBytes, r = this._map;
                    e.clamp();
                    for (var o = [], i = 0; i < n; i += 3) for (var a = (t[i >>> 2] >>> 24 - i % 4 * 8 & 255) << 16 | (t[i + 1 >>> 2] >>> 24 - (i + 1) % 4 * 8 & 255) << 8 | t[i + 2 >>> 2] >>> 24 - (i + 2) % 4 * 8 & 255, s = 0; s < 4 && i + .75 * s < n; s++) o.push(r.charAt(a >>> 6 * (3 - s) & 63));
                    var c = r.charAt(64);
                    if (c) for (; o.length % 4;) o.push(c);
                    return o.join("")
                }, parse: function (e) {
                    var t = e.length, n = this._map, r = n.charAt(64);
                    if (r) {
                        var o = e.indexOf(r);
                        -1 != o && (t = o)
                    }
                    for (var i = [], a = 0, s = 0; s < t; s++) if (s % 4) {
                        var u = n.indexOf(e.charAt(s - 1)) << s % 4 * 2, l = n.indexOf(e.charAt(s)) >>> 6 - s % 4 * 2;
                        i[a >>> 2] |= (u | l) << 24 - a % 4 * 8, a++
                    }
                    return c.create(i, a)
                }, _map: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="
            }, "object" === u(e) ? e.exports = l : window.CryptoJS = l
        }).call(this, n(5)(e))
    }, function (e, t, n) {
        var r = n(17).DOMParser, o = function () {
            this.version = "1.3.5";
            var e = {mergeCDATA: !0, normalize: !0, stripElemPrefix: !0}, t = new RegExp(/(?!xmlns)^.*:/);
            new RegExp(/^\s+|\s+$/g);
            return this.grokType = function (e) {
                return /^\s*$/.test(e) ? null : /^(?:true|false)$/i.test(e) ? "true" === e.toLowerCase() : isFinite(e) ? parseFloat(e) : e
            }, this.parseString = function (e, t) {
                if (e) {
                    var n = this.stringToXML(e);
                    return n.getElementsByTagName("parsererror").length ? null : this.parseXML(n, t)
                }
                return null
            }, this.parseXML = function (n, r) {
                for (var i in r) e[i] = r[i];
                var a = {}, s = 0, c = "";
                if (n.childNodes.length) for (var u, l, d, p = 0; p < n.childNodes.length; p++) 4 === (u = n.childNodes.item(p)).nodeType ? e.mergeCDATA && (c += u.nodeValue) : 3 === u.nodeType ? c += u.nodeValue : 1 === u.nodeType && (0 === s && (a = {}), l = e.stripElemPrefix ? u.nodeName.replace(t, "") : u.nodeName, d = o.parseXML(u), a.hasOwnProperty(l) ? (a[l].constructor !== Array && (a[l] = [a[l]]), a[l].push(d)) : (a[l] = d, s++));
                return Object.keys(a).length || (a = c || ""), a
            }, this.xmlToString = function (e) {
                try {
                    return e.xml ? e.xml : (new XMLSerializer).serializeToString(e)
                } catch (e) {
                    return null
                }
            }, this.stringToXML = function (e) {
                try {
                    var t = null;
                    return window.DOMParser ? t = (new r).parseFromString(e, "text/xml") : ((t = new ActiveXObject("Microsoft.XMLDOM")).async = !1, t.loadXML(e), t)
                } catch (e) {
                    return null
                }
            }, this
        }.call({});
        e.exports = function (e) {
            return o.parseString(e)
        }
    }, function (e, t, n) {
        var r = n(6);
        t.DOMImplementation = r.DOMImplementation, t.XMLSerializer = r.XMLSerializer, t.DOMParser = n(18).DOMParser
    }, function (e, t, n) {
        var r = n(2), o = n(6), i = n(19), a = n(20), s = o.DOMImplementation, c = r.NAMESPACE, u = a.ParseError,
            l = a.XMLReader;

        function d(e) {
            return e.replace(/\r[\n\u0085]/g, "\n").replace(/[\r\u0085\u2028]/g, "\n")
        }

        function p(e) {
            this.options = e || {locator: {}}
        }

        function f() {
            this.cdata = !1
        }

        function h(e, t) {
            t.lineNumber = e.lineNumber, t.columnNumber = e.columnNumber
        }

        function m(e, t, n) {
            return "string" == typeof e ? e.substr(t, n) : e.length >= t + n || t ? new java.lang.String(e, t, n) + "" : e
        }

        function g(e, t) {
            e.currentElement ? e.currentElement.appendChild(t) : e.doc.appendChild(t)
        }

        p.prototype.parseFromString = function (e, t) {
            var n = this.options, r = new l, o = n.domBuilder || new f, a = n.errorHandler, s = n.locator,
                u = n.xmlns || {}, p = /\/x?html?$/.test(t), h = p ? i.HTML_ENTITIES : i.XML_ENTITIES;
            s && o.setDocumentLocator(s), r.errorHandler = function (e, t, n) {
                if (!e) {
                    if (t instanceof f) return t;
                    e = t
                }
                var r = {}, o = e instanceof Function;

                function i(t) {
                    var i = e[t];
                    !i && o && (i = 2 == e.length ? function (n) {
                        e(t, n)
                    } : e), r[t] = i && function (e) {
                        i("[xmldom " + t + "]\t" + e + function (e) {
                            if (e) return "\n@" + (e.systemId || "") + "#[line:" + e.lineNumber + ",col:" + e.columnNumber + "]"
                        }(n))
                    } || function () {
                    }
                }

                return n = n || {}, i("warning"), i("error"), i("fatalError"), r
            }(a, o, s), r.domBuilder = n.domBuilder || o, p && (u[""] = c.HTML), u.xml = u.xml || c.XML;
            var m = n.normalizeLineEndings || d;
            return e && "string" == typeof e ? r.parse(m(e), u, h) : r.errorHandler.error("invalid doc source"), o.doc
        }, f.prototype = {
            startDocument: function () {
                this.doc = (new s).createDocument(null, null, null), this.locator && (this.doc.documentURI = this.locator.systemId)
            }, startElement: function (e, t, n, r) {
                var o = this.doc, i = o.createElementNS(e, n || t), a = r.length;
                g(this, i), this.currentElement = i, this.locator && h(this.locator, i);
                for (var s = 0; s < a; s++) {
                    e = r.getURI(s);
                    var c = r.getValue(s), u = (n = r.getQName(s), o.createAttributeNS(e, n));
                    this.locator && h(r.getLocator(s), u), u.value = u.nodeValue = c, i.setAttributeNode(u)
                }
            }, endElement: function (e, t, n) {
                var r = this.currentElement;
                r.tagName;
                this.currentElement = r.parentNode
            }, startPrefixMapping: function (e, t) {
            }, endPrefixMapping: function (e) {
            }, processingInstruction: function (e, t) {
                var n = this.doc.createProcessingInstruction(e, t);
                this.locator && h(this.locator, n), g(this, n)
            }, ignorableWhitespace: function (e, t, n) {
            }, characters: function (e, t, n) {
                if (e = m.apply(this, arguments)) {
                    if (this.cdata) var r = this.doc.createCDATASection(e); else r = this.doc.createTextNode(e);
                    this.currentElement ? this.currentElement.appendChild(r) : /^\s*$/.test(e) && this.doc.appendChild(r), this.locator && h(this.locator, r)
                }
            }, skippedEntity: function (e) {
            }, endDocument: function () {
                this.doc.normalize()
            }, setDocumentLocator: function (e) {
                (this.locator = e) && (e.lineNumber = 0)
            }, comment: function (e, t, n) {
                e = m.apply(this, arguments);
                var r = this.doc.createComment(e);
                this.locator && h(this.locator, r), g(this, r)
            }, startCDATA: function () {
                this.cdata = !0
            }, endCDATA: function () {
                this.cdata = !1
            }, startDTD: function (e, t, n) {
                var r = this.doc.implementation;
                if (r && r.createDocumentType) {
                    var o = r.createDocumentType(e, t, n);
                    this.locator && h(this.locator, o), g(this, o), this.doc.doctype = o
                }
            }, warning: function (e) {
            }, error: function (e) {
            }, fatalError: function (e) {
                throw new u(e, this.locator)
            }
        }, "endDTD,startEntity,endEntity,attributeDecl,elementDecl,externalEntityDecl,internalEntityDecl,resolveEntity,getExternalSubset,notationDecl,unparsedEntityDecl".replace(/\w+/g, (function (e) {
            f.prototype[e] = function () {
                return null
            }
        })), t.__DOMHandler = f, t.normalizeLineEndings = d, t.DOMParser = p
    }, function (e, t, n) {
        var r = n(2).freeze;
        t.XML_ENTITIES = r({amp: "&", apos: "'", gt: ">", lt: "<", quot: '"'}), t.HTML_ENTITIES = r({
            lt: "<",
            gt: ">",
            amp: "&",
            quot: '"',
            apos: "'",
            Agrave: "À",
            Aacute: "Á",
            Acirc: "Â",
            Atilde: "Ã",
            Auml: "Ä",
            Aring: "Å",
            AElig: "Æ",
            Ccedil: "Ç",
            Egrave: "È",
            Eacute: "É",
            Ecirc: "Ê",
            Euml: "Ë",
            Igrave: "Ì",
            Iacute: "Í",
            Icirc: "Î",
            Iuml: "Ï",
            ETH: "Ð",
            Ntilde: "Ñ",
            Ograve: "Ò",
            Oacute: "Ó",
            Ocirc: "Ô",
            Otilde: "Õ",
            Ouml: "Ö",
            Oslash: "Ø",
            Ugrave: "Ù",
            Uacute: "Ú",
            Ucirc: "Û",
            Uuml: "Ü",
            Yacute: "Ý",
            THORN: "Þ",
            szlig: "ß",
            agrave: "à",
            aacute: "á",
            acirc: "â",
            atilde: "ã",
            auml: "ä",
            aring: "å",
            aelig: "æ",
            ccedil: "ç",
            egrave: "è",
            eacute: "é",
            ecirc: "ê",
            euml: "ë",
            igrave: "ì",
            iacute: "í",
            icirc: "î",
            iuml: "ï",
            eth: "ð",
            ntilde: "ñ",
            ograve: "ò",
            oacute: "ó",
            ocirc: "ô",
            otilde: "õ",
            ouml: "ö",
            oslash: "ø",
            ugrave: "ù",
            uacute: "ú",
            ucirc: "û",
            uuml: "ü",
            yacute: "ý",
            thorn: "þ",
            yuml: "ÿ",
            nbsp: " ",
            iexcl: "¡",
            cent: "¢",
            pound: "£",
            curren: "¤",
            yen: "¥",
            brvbar: "¦",
            sect: "§",
            uml: "¨",
            copy: "©",
            ordf: "ª",
            laquo: "«",
            not: "¬",
            shy: "­­",
            reg: "®",
            macr: "¯",
            deg: "°",
            plusmn: "±",
            sup2: "²",
            sup3: "³",
            acute: "´",
            micro: "µ",
            para: "¶",
            middot: "·",
            cedil: "¸",
            sup1: "¹",
            ordm: "º",
            raquo: "»",
            frac14: "¼",
            frac12: "½",
            frac34: "¾",
            iquest: "¿",
            times: "×",
            divide: "÷",
            forall: "∀",
            part: "∂",
            exist: "∃",
            empty: "∅",
            nabla: "∇",
            isin: "∈",
            notin: "∉",
            ni: "∋",
            prod: "∏",
            sum: "∑",
            minus: "−",
            lowast: "∗",
            radic: "√",
            prop: "∝",
            infin: "∞",
            ang: "∠",
            and: "∧",
            or: "∨",
            cap: "∩",
            cup: "∪",
            int: "∫",
            there4: "∴",
            sim: "∼",
            cong: "≅",
            asymp: "≈",
            ne: "≠",
            equiv: "≡",
            le: "≤",
            ge: "≥",
            sub: "⊂",
            sup: "⊃",
            nsub: "⊄",
            sube: "⊆",
            supe: "⊇",
            oplus: "⊕",
            otimes: "⊗",
            perp: "⊥",
            sdot: "⋅",
            Alpha: "Α",
            Beta: "Β",
            Gamma: "Γ",
            Delta: "Δ",
            Epsilon: "Ε",
            Zeta: "Ζ",
            Eta: "Η",
            Theta: "Θ",
            Iota: "Ι",
            Kappa: "Κ",
            Lambda: "Λ",
            Mu: "Μ",
            Nu: "Ν",
            Xi: "Ξ",
            Omicron: "Ο",
            Pi: "Π",
            Rho: "Ρ",
            Sigma: "Σ",
            Tau: "Τ",
            Upsilon: "Υ",
            Phi: "Φ",
            Chi: "Χ",
            Psi: "Ψ",
            Omega: "Ω",
            alpha: "α",
            beta: "β",
            gamma: "γ",
            delta: "δ",
            epsilon: "ε",
            zeta: "ζ",
            eta: "η",
            theta: "θ",
            iota: "ι",
            kappa: "κ",
            lambda: "λ",
            mu: "μ",
            nu: "ν",
            xi: "ξ",
            omicron: "ο",
            pi: "π",
            rho: "ρ",
            sigmaf: "ς",
            sigma: "σ",
            tau: "τ",
            upsilon: "υ",
            phi: "φ",
            chi: "χ",
            psi: "ψ",
            omega: "ω",
            thetasym: "ϑ",
            upsih: "ϒ",
            piv: "ϖ",
            OElig: "Œ",
            oelig: "œ",
            Scaron: "Š",
            scaron: "š",
            Yuml: "Ÿ",
            fnof: "ƒ",
            circ: "ˆ",
            tilde: "˜",
            ensp: " ",
            emsp: " ",
            thinsp: " ",
            zwnj: "‌",
            zwj: "‍",
            lrm: "‎",
            rlm: "‏",
            ndash: "–",
            mdash: "—",
            lsquo: "‘",
            rsquo: "’",
            sbquo: "‚",
            ldquo: "“",
            rdquo: "”",
            bdquo: "„",
            dagger: "†",
            Dagger: "‡",
            bull: "•",
            hellip: "…",
            permil: "‰",
            prime: "′",
            Prime: "″",
            lsaquo: "‹",
            rsaquo: "›",
            oline: "‾",
            euro: "€",
            trade: "™",
            larr: "←",
            uarr: "↑",
            rarr: "→",
            darr: "↓",
            harr: "↔",
            crarr: "↵",
            lceil: "⌈",
            rceil: "⌉",
            lfloor: "⌊",
            rfloor: "⌋",
            loz: "◊",
            spades: "♠",
            clubs: "♣",
            hearts: "♥",
            diams: "♦"
        }), t.entityMap = t.HTML_ENTITIES
    }, function (e, t, n) {
        var r = n(2).NAMESPACE,
            o = /[A-Z_a-z\xC0-\xD6\xD8-\xF6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]/,
            i = new RegExp("[\\-\\.0-9" + o.source.slice(1, -1) + "\\u00B7\\u0300-\\u036F\\u203F-\\u2040]"),
            a = new RegExp("^" + o.source + i.source + "*(?::" + o.source + i.source + "*)?$");

        function s(e, t) {
            this.message = e, this.locator = t, Error.captureStackTrace && Error.captureStackTrace(this, s)
        }

        function c() {
        }

        function u(e, t) {
            return t.lineNumber = e.lineNumber, t.columnNumber = e.columnNumber, t
        }

        function l(e, t, n, o, i, a) {
            function s(e, t, r) {
                n.attributeNames.hasOwnProperty(e) && a.fatalError("Attribute " + e + " redefined"), n.addValue(e, t.replace(/[\t\n\r]/g, " ").replace(/&#?\w+;/g, i), r)
            }

            for (var c, u = ++t, l = 0; ;) {
                var d = e.charAt(u);
                switch (d) {
                    case"=":
                        if (1 === l) c = e.slice(t, u), l = 3; else {
                            if (2 !== l) throw new Error("attribute equal must after attrName");
                            l = 3
                        }
                        break;
                    case"'":
                    case'"':
                        if (3 === l || 1 === l) {
                            if (1 === l && (a.warning('attribute value must after "="'), c = e.slice(t, u)), t = u + 1, !((u = e.indexOf(d, t)) > 0)) throw new Error("attribute value no end '" + d + "' match");
                            s(c, p = e.slice(t, u), t - 1), l = 5
                        } else {
                            if (4 != l) throw new Error('attribute value must after "="');
                            s(c, p = e.slice(t, u), t), a.warning('attribute "' + c + '" missed start quot(' + d + ")!!"), t = u + 1, l = 5
                        }
                        break;
                    case"/":
                        switch (l) {
                            case 0:
                                n.setTagName(e.slice(t, u));
                            case 5:
                            case 6:
                            case 7:
                                l = 7, n.closed = !0;
                            case 4:
                            case 1:
                            case 2:
                                break;
                            default:
                                throw new Error("attribute invalid close char('/')")
                        }
                        break;
                    case"":
                        return a.error("unexpected end of input"), 0 == l && n.setTagName(e.slice(t, u)), u;
                    case">":
                        switch (l) {
                            case 0:
                                n.setTagName(e.slice(t, u));
                            case 5:
                            case 6:
                            case 7:
                                break;
                            case 4:
                            case 1:
                                "/" === (p = e.slice(t, u)).slice(-1) && (n.closed = !0, p = p.slice(0, -1));
                            case 2:
                                2 === l && (p = c), 4 == l ? (a.warning('attribute "' + p + '" missed quot(")!'), s(c, p, t)) : (r.isHTML(o[""]) && p.match(/^(?:disabled|checked|selected)$/i) || a.warning('attribute "' + p + '" missed value!! "' + p + '" instead!!'), s(p, p, t));
                                break;
                            case 3:
                                throw new Error("attribute value missed!!")
                        }
                        return u;
                    case"":
                        d = " ";
                    default:
                        if (d <= " ") switch (l) {
                            case 0:
                                n.setTagName(e.slice(t, u)), l = 6;
                                break;
                            case 1:
                                c = e.slice(t, u), l = 2;
                                break;
                            case 4:
                                var p = e.slice(t, u);
                                a.warning('attribute "' + p + '" missed quot(")!!'), s(c, p, t);
                            case 5:
                                l = 6
                        } else switch (l) {
                            case 2:
                                n.tagName;
                                r.isHTML(o[""]) && c.match(/^(?:disabled|checked|selected)$/i) || a.warning('attribute "' + c + '" missed value!! "' + c + '" instead2!!'), s(c, c, t), t = u, l = 1;
                                break;
                            case 5:
                                a.warning('attribute space is required"' + c + '"!!');
                            case 6:
                                l = 1, t = u;
                                break;
                            case 3:
                                l = 4, t = u;
                                break;
                            case 7:
                                throw new Error("elements closed character '/' and '>' must be connected to")
                        }
                }
                u++
            }
        }

        function d(e, t, n) {
            for (var o = e.tagName, i = null, a = e.length; a--;) {
                var s = e[a], c = s.qName, u = s.value;
                if ((f = c.indexOf(":")) > 0) var l = s.prefix = c.slice(0, f), d = c.slice(f + 1),
                    p = "xmlns" === l && d; else d = c, l = null, p = "xmlns" === c && "";
                s.localName = d, !1 !== p && (null == i && (i = {}, h(n, n = {})), n[p] = i[p] = u, s.uri = r.XMLNS, t.startPrefixMapping(p, u))
            }
            for (a = e.length; a--;) {
                (l = (s = e[a]).prefix) && ("xml" === l && (s.uri = r.XML), "xmlns" !== l && (s.uri = n[l || ""]))
            }
            var f;
            (f = o.indexOf(":")) > 0 ? (l = e.prefix = o.slice(0, f), d = e.localName = o.slice(f + 1)) : (l = null, d = e.localName = o);
            var m = e.uri = n[l || ""];
            if (t.startElement(m, d, o, e), !e.closed) return e.currentNSMap = n, e.localNSMap = i, !0;
            if (t.endElement(m, d, o), i) for (l in i) t.endPrefixMapping(l)
        }

        function p(e, t, n, r, o) {
            if (/^(?:script|textarea)$/i.test(n)) {
                var i = e.indexOf("</" + n + ">", t), a = e.substring(t + 1, i);
                if (/[&<]/.test(a)) return /^script$/i.test(n) ? (o.characters(a, 0, a.length), i) : (a = a.replace(/&#?\w+;/g, r), o.characters(a, 0, a.length), i)
            }
            return t + 1
        }

        function f(e, t, n, r) {
            var o = r[n];
            return null == o && ((o = e.lastIndexOf("</" + n + ">")) < t && (o = e.lastIndexOf("</" + n)), r[n] = o), o < t
        }

        function h(e, t) {
            for (var n in e) t[n] = e[n]
        }

        function m(e, t, n, r) {
            if ("-" === e.charAt(t + 2)) return "-" === e.charAt(t + 3) ? (o = e.indexOf("--\x3e", t + 4)) > t ? (n.comment(e, t + 4, o - t - 4), o + 3) : (r.error("Unclosed comment"), -1) : -1;
            if ("CDATA[" == e.substr(t + 3, 6)) {
                var o = e.indexOf("]]>", t + 9);
                return n.startCDATA(), n.characters(e, t + 9, o - t - 9), n.endCDATA(), o + 3
            }
            var i = function (e, t) {
                var n, r = [], o = /'[^']+'|"[^"]+"|[^\s<>\/=]+=?|(\/?\s*>|<)/g;
                o.lastIndex = t, o.exec(e);
                for (; n = o.exec(e);) if (r.push(n), n[1]) return r
            }(e, t), a = i.length;
            if (a > 1 && /!doctype/i.test(i[0][0])) {
                var s = i[1][0], c = !1, u = !1;
                a > 3 && (/^public$/i.test(i[2][0]) ? (c = i[3][0], u = a > 4 && i[4][0]) : /^system$/i.test(i[2][0]) && (u = i[3][0]));
                var l = i[a - 1];
                return n.startDTD(s, c, u), n.endDTD(), l.index + l[0].length
            }
            return -1
        }

        function g(e, t, n) {
            var r = e.indexOf("?>", t);
            if (r) {
                var o = e.substring(t, r).match(/^<\?(\S*)\s*([\s\S]*?)\s*$/);
                if (o) {
                    o[0].length;
                    return n.processingInstruction(o[1], o[2]), r + 2
                }
                return -1
            }
            return -1
        }

        function y() {
            this.attributeNames = {}
        }

        s.prototype = new Error, s.prototype.name = s.name, c.prototype = {
            parse: function (e, t, n) {
                var o = this.domBuilder;
                o.startDocument(), h(t, t = {}), function (e, t, n, o, i) {
                    function a(e) {
                        if (e > 65535) {
                            var t = 55296 + ((e -= 65536) >> 10), n = 56320 + (1023 & e);
                            return String.fromCharCode(t, n)
                        }
                        return String.fromCharCode(e)
                    }

                    function c(e) {
                        var t = e.slice(1, -1);
                        return Object.hasOwnProperty.call(n, t) ? n[t] : "#" === t.charAt(0) ? a(parseInt(t.substr(1).replace("x", "0x"))) : (i.error("entity not found:" + e), e)
                    }

                    function h(t) {
                        if (t > R) {
                            var n = e.substring(R, t).replace(/&#?\w+;/g, c);
                            b && v(R), o.characters(n, 0, t - R), R = t
                        }
                    }

                    function v(t, n) {
                        for (; t >= k && (n = S.exec(e));) C = n.index, k = C + n[0].length, b.lineNumber++;
                        b.columnNumber = t - C + 1
                    }

                    var C = 0, k = 0, S = /.*(?:\r\n?|\n)|.*$/g, b = o.locator, w = [{currentNSMap: t}], T = {}, R = 0;
                    for (; ;) {
                        try {
                            var E = e.indexOf("<", R);
                            if (E < 0) {
                                if (!e.substr(R).match(/^\s*$/)) {
                                    var x = o.doc, A = x.createTextNode(e.substr(R));
                                    x.appendChild(A), o.currentElement = A
                                }
                                return
                            }
                            switch (E > R && h(E), e.charAt(E + 1)) {
                                case"/":
                                    var B = e.indexOf(">", E + 3),
                                        I = e.substring(E + 2, B).replace(/[ \t\n\r]+$/g, ""), _ = w.pop();
                                    B < 0 ? (I = e.substring(E + 2).replace(/[\s<].*/, ""), i.error("end tag name: " + I + " is not complete:" + _.tagName), B = E + 1 + I.length) : I.match(/\s</) && (I = I.replace(/[\s<].*/, ""), i.error("end tag name: " + I + " maybe not complete"), B = E + 1 + I.length);
                                    var O = _.localNSMap, P = _.tagName == I;
                                    if (P || _.tagName && _.tagName.toLowerCase() == I.toLowerCase()) {
                                        if (o.endElement(_.uri, _.localName, I), O) for (var D in O) o.endPrefixMapping(D);
                                        P || i.fatalError("end tag name: " + I + " is not match the current start tagName:" + _.tagName)
                                    } else w.push(_);
                                    B++;
                                    break;
                                case"?":
                                    b && v(E), B = g(e, E, o);
                                    break;
                                case"!":
                                    b && v(E), B = m(e, E, o, i);
                                    break;
                                default:
                                    b && v(E);
                                    var N = new y, U = w[w.length - 1].currentNSMap,
                                        M = (B = l(e, E, N, U, c, i), N.length);
                                    if (!N.closed && f(e, B, N.tagName, T) && (N.closed = !0, n.nbsp || i.warning("unclosed xml attribute")), b && M) {
                                        for (var L = u(b, {}), H = 0; H < M; H++) {
                                            var j = N[H];
                                            v(j.offset), j.locator = u(b, {})
                                        }
                                        o.locator = L, d(N, o, U) && w.push(N), o.locator = b
                                    } else d(N, o, U) && w.push(N);
                                    r.isHTML(N.uri) && !N.closed ? B = p(e, B, N.tagName, c, o) : B++
                            }
                        } catch (e) {
                            if (e instanceof s) throw e;
                            i.error("element parse error: " + e), B = -1
                        }
                        B > R ? R = B : h(Math.max(E, R) + 1)
                    }
                }(e, t, n, o, this.errorHandler), o.endDocument()
            }
        }, y.prototype = {
            setTagName: function (e) {
                if (!a.test(e)) throw new Error("invalid tagName:" + e);
                this.tagName = e
            }, addValue: function (e, t, n) {
                if (!a.test(e)) throw new Error("invalid attribute:" + e);
                this.attributeNames[e] = this.length, this[this.length++] = {qName: e, value: t, offset: n}
            }, length: 0, getLocalName: function (e) {
                return this[e].localName
            }, getLocator: function (e) {
                return this[e].locator
            }, getQName: function (e) {
                return this[e].qName
            }, getURI: function (e) {
                return this[e].uri
            }, getValue: function (e) {
                return this[e].value
            }
        }, t.XMLReader = c, t.ParseError = s
    }, function (e, t, n) {
        var r = n(0), o = "a-zA-Z_À-ÖØ-öø-ÿͰ-ͽͿ-῿‌-‍⁰-↏Ⰰ-⿿、-퟿豈-﷏ﷰ-�",
            i = new RegExp("^([^" + o + "])|^((x|X)(m|M)(l|L))|([^" + o + "-.0-9·̀-ͯ‿⁀])", "g"),
            a = /[^\x09\x0A\x0D\x20-\xFF\x85\xA0-\uD7FF\uE000-\uFDCF\uFDE0-\uFFFD]/gm, s = function (e) {
                var t = [];
                if (e instanceof Object) for (var n in e) e.hasOwnProperty(n) && t.push(n);
                return t
            }, c = function (e, t) {
                var n = function (e, n, r, o, a) {
                    var s = void 0 !== t.indent ? t.indent : "\t", c = t.prettyPrint ? "\n" + new Array(o).join(s) : "";
                    t.removeIllegalNameCharacters && (e = e.replace(i, "_"));
                    var u = [c, "<", e, r || ""];
                    return n && n.length > 0 ? (u.push(">"), u.push(n), a && u.push(c), u.push("</"), u.push(e), u.push(">")) : u.push("/>"), u.join("")
                };
                return function e(o, i, c) {
                    var u = r(o);
                    switch ((Array.isArray ? Array.isArray(o) : o instanceof Array) ? u = "array" : o instanceof Date && (u = "date"), u) {
                        case"array":
                            var l = [];
                            return o.map((function (t) {
                                l.push(e(t, 1, c + 1))
                            })), t.prettyPrint && l.push("\n"), l.join("");
                        case"date":
                            return o.toJSON ? o.toJSON() : o + "";
                        case"object":
                            var d = [];
                            for (var p in o) if (o.hasOwnProperty(p)) if (o[p] instanceof Array) for (var f = 0; f < o[p].length; f++) o[p].hasOwnProperty(f) && d.push(n(p, e(o[p][f], 0, c + 1), null, c + 1, s(o[p][f]).length)); else d.push(n(p, e(o[p], 0, c + 1), null, c + 1));
                            return t.prettyPrint && d.length > 0 && d.push("\n"), d.join("");
                        case"function":
                            return o();
                        default:
                            return t.escape ? ("" + o).replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/'/g, "&apos;").replace(/"/g, "&quot;").replace(a, "") : "" + o
                    }
                }(e, 0, 0)
            }, u = function (e) {
                var t = ['<?xml version="1.0" encoding="UTF-8"'];
                return e && t.push(' standalone="yes"'), t.push("?>"), t.join("")
            };
        e.exports = function (e, t) {
            if (t || (t = {
                xmlHeader: {standalone: !0},
                prettyPrint: !0,
                indent: "  ",
                escape: !0
            }), "string" == typeof e) try {
                e = JSON.parse(e.toString())
            } catch (e) {
                return !1
            }
            var n = "", o = "";
            return t && ("object" == r(t) ? (t.xmlHeader && (n = u(!!t.xmlHeader.standalone)), void 0 !== t.docType && (o = "<!DOCTYPE " + t.docType + ">")) : n = u()), [n, (t = t || {}).prettyPrint && o ? "\n" : "", o, c(e, t)].join("").replace(/\n{2,}/g, "\n").replace(/\s+$/g, "")
        }
    }, function (e, t) {
        e.exports = function (e, t) {
            if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
        }, e.exports.__esModule = !0, e.exports.default = e.exports
    }, function (e, t) {
        function n(e, t) {
            for (var n = 0; n < t.length; n++) {
                var r = t[n];
                r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(e, r.key, r)
            }
        }

        e.exports = function (e, t, r) {
            return t && n(e.prototype, t), r && n(e, r), Object.defineProperty(e, "prototype", {writable: !1}), e
        }, e.exports.__esModule = !0, e.exports.default = e.exports
    }, function (e, t, n) {
        (function (r) {
            var o, i, a, s = n(0);
            a = function () {
                "use strict";
                var e = function (t, n) {
                    return (e = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (e, t) {
                        e.__proto__ = t
                    } || function (e, t) {
                        for (var n in t) Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n])
                    })(t, n)
                }, t = function () {
                    return (t = Object.assign || function (e) {
                        for (var t, n = 1, r = arguments.length; n < r; n++) for (var o in t = arguments[n]) Object.prototype.hasOwnProperty.call(t, o) && (e[o] = t[o]);
                        return e
                    }).apply(this, arguments)
                };

                function n(e, t, n, r) {
                    return new (n || (n = Promise))((function (o, i) {
                        function a(e) {
                            try {
                                c(r.next(e))
                            } catch (e) {
                                i(e)
                            }
                        }

                        function s(e) {
                            try {
                                c(r.throw(e))
                            } catch (e) {
                                i(e)
                            }
                        }

                        function c(e) {
                            var t;
                            e.done ? o(e.value) : (t = e.value, t instanceof n ? t : new n((function (e) {
                                e(t)
                            }))).then(a, s)
                        }

                        c((r = r.apply(e, t || [])).next())
                    }))
                }

                function o(e, t) {
                    var n, r, o, i, a = {
                        label: 0, sent: function () {
                            if (1 & o[0]) throw o[1];
                            return o[1]
                        }, trys: [], ops: []
                    };
                    return i = {
                        next: s(0),
                        throw: s(1),
                        return: s(2)
                    }, "function" == typeof Symbol && (i[Symbol.iterator] = function () {
                        return this
                    }), i;

                    function s(i) {
                        return function (s) {
                            return function (i) {
                                if (n) throw new TypeError("Generator is already executing.");
                                for (; a;) try {
                                    if (n = 1, r && (o = 2 & i[0] ? r.return : i[0] ? r.throw || ((o = r.return) && o.call(r), 0) : r.next) && !(o = o.call(r, i[1])).done) return o;
                                    switch (r = 0, o && (i = [2 & i[0], o.value]), i[0]) {
                                        case 0:
                                        case 1:
                                            o = i;
                                            break;
                                        case 4:
                                            return a.label++, {value: i[1], done: !1};
                                        case 5:
                                            a.label++, r = i[1], i = [0];
                                            continue;
                                        case 7:
                                            i = a.ops.pop(), a.trys.pop();
                                            continue;
                                        default:
                                            if (!((o = (o = a.trys).length > 0 && o[o.length - 1]) || 6 !== i[0] && 2 !== i[0])) {
                                                a = 0;
                                                continue
                                            }
                                            if (3 === i[0] && (!o || i[1] > o[0] && i[1] < o[3])) {
                                                a.label = i[1];
                                                break
                                            }
                                            if (6 === i[0] && a.label < o[1]) {
                                                a.label = o[1], o = i;
                                                break
                                            }
                                            if (o && a.label < o[2]) {
                                                a.label = o[2], a.ops.push(i);
                                                break
                                            }
                                            o[2] && a.ops.pop(), a.trys.pop();
                                            continue
                                    }
                                    i = t.call(e, a)
                                } catch (e) {
                                    i = [6, e], r = 0
                                } finally {
                                    n = o = 0
                                }
                                if (5 & i[0]) throw i[1];
                                return {value: i[0] ? i[1] : void 0, done: !0}
                            }([i, s])
                        }
                    }
                }

                var i = "__BEACON_", a = "__BEACON_deviceId", c = "last_report_time", u = "sending_event_ids",
                    l = "beacon_config", d = "beacon_config_request_time", p = function () {
                        function e() {
                            var e = this;
                            this.emit = function (t, n) {
                                if (e) {
                                    var r, o = e.__EventsList[t];
                                    if (null == o ? void 0 : o.length) {
                                        o = o.slice();
                                        for (var i = 0; i < o.length; i++) {
                                            r = o[i];
                                            try {
                                                var a = r.callback.apply(e, [n]);
                                                if (1 === r.type && e.remove(t, r.callback), !1 === a) break
                                            } catch (e) {
                                                throw e
                                            }
                                        }
                                    }
                                    return e
                                }
                            }, this.__EventsList = {}
                        }

                        return e.prototype.indexOf = function (e, t) {
                            for (var n = 0; n < e.length; n++) if (e[n].callback === t) return n;
                            return -1
                        }, e.prototype.on = function (e, t, n) {
                            if (void 0 === n && (n = 0), this) {
                                var r = this.__EventsList[e];
                                if (r || (r = this.__EventsList[e] = []), -1 === this.indexOf(r, t)) {
                                    var o = {name: e, type: n || 0, callback: t};
                                    return r.push(o), this
                                }
                                return this
                            }
                        }, e.prototype.one = function (e, t) {
                            this.on(e, t, 1)
                        }, e.prototype.remove = function (e, t) {
                            if (this) {
                                var n = this.__EventsList[e];
                                if (!n) return null;
                                if (!t) {
                                    try {
                                        delete this.__EventsList[e]
                                    } catch (e) {
                                    }
                                    return null
                                }
                                if (n.length) {
                                    var r = this.indexOf(n, t);
                                    n.splice(r, 1)
                                }
                                return this
                            }
                        }, e
                    }();

                function f(e, t) {
                    for (var n = {}, r = 0, o = Object.keys(e); r < o.length; r++) {
                        var i = o[r], a = e[i];
                        if ("string" == typeof a) n[h(i)] = h(a); else {
                            if (t) throw new Error("value mast be string  !!!!");
                            n[h(String(i))] = h(String(a))
                        }
                    }
                    return n
                }

                function h(e) {
                    if ("string" != typeof e) return e;
                    try {
                        return e.replace(new RegExp("\\|", "g"), "%7C").replace(new RegExp("\\&", "g"), "%26").replace(new RegExp("\\=", "g"), "%3D").replace(new RegExp("\\+", "g"), "%2B")
                    } catch (e) {
                        return ""
                    }
                }

                function m(e) {
                    return String(e.A99) + String(e.A100)
                }

                var g = function () {
                }, y = function () {
                    function e(e) {
                        var n = this;
                        this.lifeCycle = new p, this.uploadJobQueue = [], this.additionalParams = {}, this.delayTime = 0, this._normalLogPipeline = function (e) {
                            if (!e || !e.reduce || !e.length) throw new TypeError("createPipeline 方法需要传入至少有一个 pipe 的数组");
                            return 1 === e.length ? function (t, n) {
                                e[0](t, n || g)
                            } : e.reduce((function (e, t) {
                                return function (n, r) {
                                    return void 0 === r && (r = g), e(n, (function (e) {
                                        return null == t ? void 0 : t(e, r)
                                    }))
                                }
                            }))
                        }([function (e) {
                            n.send({
                                url: n.strategy.getUploadUrl(),
                                data: e,
                                method: "post",
                                contentType: "application/json;charset=UTF-8"
                            }, (function () {
                                var t = n.config.onReportSuccess;
                                "function" == typeof t && t(JSON.stringify(e.events))
                            }), (function () {
                                var t = n.config.onReportFail;
                                "function" == typeof t && t(JSON.stringify(e.events))
                            }))
                        }]), function (e, t) {
                            if (!e) throw t instanceof Error ? t : new Error(t)
                        }(Boolean(e.appkey), "appkey must be initial"), this.config = t({}, e)
                    }

                    return e.prototype.onUserAction = function (e, t) {
                        this.preReport(e, t, !1)
                    }, e.prototype.onDirectUserAction = function (e, t) {
                        this.preReport(e, t, !0)
                    }, e.prototype.preReport = function (e, t, n) {
                        e ? this.strategy.isEventUpOnOff() && (this.strategy.isBlackEvent(e) || this.strategy.isSampleEvent(e) || this.onReport(e, t, n)) : this.errorReport.reportError("602", " no eventCode")
                    }, e.prototype.addAdditionalParams = function (e) {
                        for (var t = 0, n = Object.keys(e); t < n.length; t++) {
                            var r = n[t];
                            this.additionalParams[r] = e[r]
                        }
                    }, e.prototype.setChannelId = function (e) {
                        this.commonInfo.channelID = String(e)
                    }, e.prototype.setOpenId = function (e) {
                        this.commonInfo.openid = String(e)
                    }, e.prototype.setUnionid = function (e) {
                        this.commonInfo.unid = String(e)
                    }, e.prototype.getDeviceId = function () {
                        return this.commonInfo.deviceId
                    }, e.prototype.getCommonInfo = function () {
                        return this.commonInfo
                    }, e.prototype.removeSendingId = function (e) {
                        try {
                            var t = JSON.parse(this.storage.getItem(u)), n = t.indexOf(e);
                            -1 != n && (t.splice(n, 1), this.storage.setItem(u, JSON.stringify(t)))
                        } catch (e) {
                        }
                    }, e
                }(), v = function () {
                    function e(e, t, n, r) {
                        this.requestParams = {}, this.network = r, this.requestParams.attaid = "00400014144", this.requestParams.token = "6478159937", this.requestParams.product_id = e.appkey, this.requestParams.platform = n, this.requestParams.uin = t.deviceId, this.requestParams.model = "", this.requestParams.os = n, this.requestParams.app_version = e.appVersion, this.requestParams.sdk_version = t.sdkVersion, this.requestParams.error_stack = "", this.uploadUrl = e.isOversea ? "https://htrace.wetvinfo.com/kv" : "https://h.trace.qq.com/kv"
                    }

                    return e.prototype.reportError = function (e, t) {
                        this.requestParams._dc = Math.random(), this.requestParams.error_msg = t, this.requestParams.error_code = e, this.network.get(this.uploadUrl, {params: this.requestParams}).catch((function (e) {
                        }))
                    }, e
                }(), C = function () {
                    function e(e, t, n, r) {
                        this.strategy = {
                            isEventUpOnOff: !0,
                            httpsUploadUrl: "https://otheve.beacon.qq.com/analytics/v2_upload",
                            requestInterval: 30,
                            blacklist: [],
                            samplelist: []
                        }, this.realSample = {}, this.appkey = "", this.appkey = e.appkey, this.storage = n;
                        try {
                            var o = JSON.parse(this.storage.getItem(l));
                            o && this.processData(o)
                        } catch (e) {
                        }
                        e.isOversea && (this.strategy.httpsUploadUrl = "https://svibeacon.onezapp.com/analytics/v2_upload"), !e.isOversea && this.needRequestConfig() && this.requestConfig(e.appVersion, t, r)
                    }

                    return e.prototype.requestConfig = function (e, t, n) {
                        var r = this;
                        this.storage.setItem(d, Date.now().toString()), n.post("https://oth.str.beacon.qq.com/trpc.beacon.configserver.BeaconConfigService/QueryConfig", {
                            platformId: "undefined" == typeof wx ? "3" : "4",
                            mainAppKey: this.appkey,
                            appVersion: e,
                            sdkVersion: t.sdkVersion,
                            osVersion: t.userAgent,
                            model: "",
                            packageName: "",
                            params: {A3: t.deviceId}
                        }).then((function (e) {
                            if (0 == e.data.ret) try {
                                var t = JSON.parse(e.data.beaconConfig);
                                t && (r.processData(t), r.storage.setItem(l, e.data.beaconConfig))
                            } catch (e) {
                            } else r.processData(null), r.storage.setItem(l, "")
                        })).catch((function (e) {
                        }))
                    }, e.prototype.processData = function (e) {
                        var t, n, r, o, i;
                        this.strategy.isEventUpOnOff = null !== (t = null == e ? void 0 : e.isEventUpOnOff) && void 0 !== t ? t : this.strategy.isEventUpOnOff, this.strategy.httpsUploadUrl = null !== (n = null == e ? void 0 : e.httpsUploadUrl) && void 0 !== n ? n : this.strategy.httpsUploadUrl, this.strategy.requestInterval = null !== (r = null == e ? void 0 : e.requestInterval) && void 0 !== r ? r : this.strategy.requestInterval, this.strategy.blacklist = null !== (o = null == e ? void 0 : e.blacklist) && void 0 !== o ? o : this.strategy.blacklist, this.strategy.samplelist = null !== (i = null == e ? void 0 : e.samplelist) && void 0 !== i ? i : this.strategy.samplelist;
                        for (var a = 0, s = this.strategy.samplelist; a < s.length; a++) {
                            var c = s[a].split(",");
                            2 == c.length && (this.realSample[c[0]] = c[1])
                        }
                    }, e.prototype.needRequestConfig = function () {
                        var e = Number(this.storage.getItem(d));
                        return Date.now() - e > 60 * this.strategy.requestInterval * 1e3
                    }, e.prototype.getUploadUrl = function () {
                        return this.strategy.httpsUploadUrl + "?appkey=" + this.appkey
                    }, e.prototype.isBlackEvent = function (e) {
                        return -1 != this.strategy.blacklist.indexOf(e)
                    }, e.prototype.isEventUpOnOff = function () {
                        return this.strategy.isEventUpOnOff
                    }, e.prototype.isSampleEvent = function (e) {
                        return !!Object.prototype.hasOwnProperty.call(this.realSample, e) && this.realSample[e] < Math.floor(Math.random() * Math.floor(1e4))
                    }, e
                }(), k = "session_storage_key", S = function () {
                    function e(e, t, n) {
                        this.beacon = n, this.storage = e, this.duration = t, this.appkey = n.config.appkey
                    }

                    return e.prototype.getSession = function () {
                        var e = this.storage.getItem(k);
                        if (!e) return this.createSession();
                        var t = "", n = 0;
                        try {
                            var r = JSON.parse(e) || {sessionId: void 0, sessionStart: void 0};
                            if (!r.sessionId || !r.sessionStart) return this.createSession();
                            var o = Number(this.storage.getItem(c));
                            if (Date.now() - o > this.duration) return this.createSession();
                            t = r.sessionId, n = r.sessionStart
                        } catch (e) {
                        }
                        return {sessionId: t, sessionStart: n}
                    }, e.prototype.createSession = function () {
                        var e = Date.now(), t = {sessionId: this.appkey + "_" + e.toString(), sessionStart: e};
                        this.storage.setItem(k, JSON.stringify(t)), this.storage.setItem(c, e.toString());
                        var n = "is_new_user", r = this.storage.getItem(n);
                        return this.beacon.onDirectUserAction("rqd_applaunched", {A21: r ? "N" : "Y"}), this.storage.setItem(n, JSON.stringify(!1)), t
                    }, e
                }();

                function b() {
                    var e = navigator.userAgent, t = e.indexOf("compatible") > -1 && e.indexOf("MSIE") > -1,
                        n = e.indexOf("Edge") > -1 && !t, r = e.indexOf("Trident") > -1 && e.indexOf("rv:11.0") > -1;
                    if (t) {
                        new RegExp("MSIE (\\d+\\.\\d+);").test(e);
                        var o = parseFloat(RegExp.$1);
                        return 7 == o ? 7 : 8 == o ? 8 : 9 == o ? 9 : 10 == o ? 10 : 6
                    }
                    return n ? -2 : r ? 11 : -1
                }

                var w, T, R = function () {
                    return (R = Object.assign || function (e) {
                        for (var t, n = 1, r = arguments.length; n < r; n++) for (var o in t = arguments[n]) Object.prototype.hasOwnProperty.call(t, o) && (e[o] = t[o]);
                        return e
                    }).apply(this, arguments)
                }, E = function () {
                    function e(e, t) {
                        void 0 === t && (t = {}), this.reportOptions = {}, this.config = e, this.reportOptions = t
                    }

                    return e.canUseDB = function () {
                        return !!(null === window || void 0 === window ? void 0 : window.indexedDB)
                    }, e.prototype.openDB = function () {
                        var t = this;
                        return new Promise((function (n, r) {
                            if (!e.canUseDB()) return r({message: "当前不支持 indexeddb"});
                            var o = t.config, i = o.name, a = o.version, s = o.stores, c = indexedDB.open(i, a);
                            c.onsuccess = function () {
                                t.db = c.result, n(), R({
                                    result: 1,
                                    func: "open",
                                    params: JSON.stringify(t.config)
                                }, t.reportOptions)
                            }, c.onerror = function (e) {
                                var n, o;
                                r(e), R({
                                    result: 0,
                                    func: "open",
                                    params: JSON.stringify(t.config),
                                    error_msg: null === (o = null === (n = e.target) || void 0 === n ? void 0 : n.error) || void 0 === o ? void 0 : o.message
                                }, t.reportOptions)
                            }, c.onupgradeneeded = function () {
                                t.db = c.result;
                                try {
                                    null == s || s.forEach((function (e) {
                                        t.createStore(e)
                                    }))
                                } catch (e) {
                                    R({
                                        result: 0,
                                        func: "open",
                                        params: JSON.stringify(t.config),
                                        error_msg: e.message
                                    }, t.reportOptions), r(e)
                                }
                            }
                        }))
                    }, e.prototype.useStore = function (e) {
                        return this.storeName = e, this
                    }, e.prototype.deleteDB = function () {
                        var e = this;
                        return this.closeDB(), new Promise((function (t, n) {
                            var r = indexedDB.deleteDatabase(e.config.name);
                            r.onsuccess = function () {
                                return t()
                            }, r.onerror = n
                        }))
                    }, e.prototype.closeDB = function () {
                        var e;
                        null === (e = this.db) || void 0 === e || e.close(), this.db = null
                    }, e.prototype.getStoreCount = function () {
                        var e = this;
                        return new Promise((function (t, n) {
                            var r = e.getStore("readonly").count();
                            r.onsuccess = function () {
                                return t(r.result)
                            }, r.onerror = n
                        }))
                    }, e.prototype.clearStore = function () {
                        var e = this;
                        return new Promise((function (t, n) {
                            var r = e.getStore("readwrite").clear();
                            r.onsuccess = function () {
                                return t()
                            }, r.onerror = n
                        }))
                    }, e.prototype.add = function (e, t) {
                        var n = this;
                        return new Promise((function (r, o) {
                            var i = n.getStore("readwrite").add(e, t);
                            i.onsuccess = function () {
                                r(i.result)
                            }, i.onerror = o
                        }))
                    }, e.prototype.put = function (e, t) {
                        var n = this;
                        return new Promise((function (r, o) {
                            var i = n.getStore("readwrite").put(e, t);
                            i.onsuccess = function () {
                                r(i.result)
                            }, i.onerror = o
                        }))
                    }, e.prototype.getStoreAllData = function () {
                        var e = this;
                        return new Promise((function (t, n) {
                            var r = e.getStore("readonly").openCursor(), o = [];
                            r.onsuccess = function () {
                                var e;
                                if (null === (e = r.result) || void 0 === e ? void 0 : e.value) {
                                    var n = r.result.value;
                                    o.push(n), r.result.continue()
                                } else t(o)
                            }, r.onerror = n
                        }))
                    }, e.prototype.getDataRangeByIndex = function (e, t, n, r, o) {
                        var i = this;
                        return new Promise((function (a, s) {
                            var c = i.getStore().index(e), u = IDBKeyRange.bound(t, n, r, o), l = [],
                                d = c.openCursor(u);
                            d.onsuccess = function () {
                                var e;
                                (null === (e = null == d ? void 0 : d.result) || void 0 === e ? void 0 : e.value) ? (l.push(null == d ? void 0 : d.result.value), null == d || d.result.continue()) : a(l)
                            }, d.onerror = s
                        }))
                    }, e.prototype.removeDataByIndex = function (e, t, n, r, o) {
                        var i = this;
                        return new Promise((function (a, s) {
                            var c = i.getStore("readwrite").index(e), u = IDBKeyRange.bound(t, n, r, o),
                                l = c.openCursor(u), d = 0;
                            l.onsuccess = function (e) {
                                var t = e.target.result;
                                t ? (d += 1, t.delete(), t.continue()) : a(d)
                            }, l.onerror = s
                        }))
                    }, e.prototype.createStore = function (e) {
                        var t = e.name, n = e.indexes, r = void 0 === n ? [] : n, o = e.options;
                        if (this.db) {
                            this.db.objectStoreNames.contains(t) && this.db.deleteObjectStore(t);
                            var i = this.db.createObjectStore(t, o);
                            r.forEach((function (e) {
                                i.createIndex(e.indexName, e.keyPath, e.options)
                            }))
                        }
                    }, e.prototype.getStore = function (e) {
                        var t;
                        return void 0 === e && (e = "readonly"), null === (t = this.db) || void 0 === t ? void 0 : t.transaction(this.storeName, e).objectStore(this.storeName)
                    }, e
                }(), x = "event_table_v3", A = "eventId", B = function () {
                    function e(e) {
                        this.isReady = !1, this.taskQueue = Promise.resolve(), this.db = new E({
                            name: "Beacon_" + e + "_V3",
                            version: 1,
                            stores: [{
                                name: x,
                                options: {keyPath: A},
                                indexes: [{indexName: A, keyPath: A, options: {unique: !0}}]
                            }]
                        }), this.open()
                    }

                    return e.prototype.getCount = function () {
                        var e = this;
                        return this.readyExec((function () {
                            return e.db.getStoreCount()
                        }))
                    }, e.prototype.setItem = function (e, t) {
                        var n = this;
                        return this.readyExec((function () {
                            return n.db.add({eventId: e, value: t})
                        }))
                    }, e.prototype.getItem = function (e) {
                        return n(this, void 0, void 0, (function () {
                            var t = this;
                            return o(this, (function (n) {
                                return [2, this.readyExec((function () {
                                    return t.db.getDataRangeByIndex(A, e, e)
                                }))]
                            }))
                        }))
                    }, e.prototype.removeItem = function (e) {
                        var t = this;
                        return this.readyExec((function () {
                            return t.db.removeDataByIndex(A, e, e)
                        }))
                    }, e.prototype.updateItem = function (e, t) {
                        var n = this;
                        return this.readyExec((function () {
                            return n.db.put({eventId: e, value: t})
                        }))
                    }, e.prototype.iterate = function (e) {
                        var t = this;
                        return this.readyExec((function () {
                            return t.db.getStoreAllData().then((function (t) {
                                t.forEach((function (t) {
                                    e(t.value)
                                }))
                            }))
                        }))
                    }, e.prototype.open = function () {
                        return n(this, void 0, void 0, (function () {
                            var e = this;
                            return o(this, (function (t) {
                                switch (t.label) {
                                    case 0:
                                        return this.taskQueue = this.taskQueue.then((function () {
                                            return e.db.openDB()
                                        })), [4, this.taskQueue];
                                    case 1:
                                        return t.sent(), this.isReady = !0, this.db.useStore(x), [2]
                                }
                            }))
                        }))
                    }, e.prototype.readyExec = function (e) {
                        return this.isReady ? e() : (this.taskQueue = this.taskQueue.then((function () {
                            return e()
                        })), this.taskQueue)
                    }, e
                }(), I = function () {
                    function e(e) {
                        this.keyObject = {}, this.storage = e
                    }

                    return e.prototype.getCount = function () {
                        return this.storage.getStoreCount()
                    }, e.prototype.removeItem = function (e) {
                        this.storage.removeItem(e), delete this.keyObject[e]
                    }, e.prototype.setItem = function (e, t) {
                        var n = JSON.stringify(t);
                        this.storage.setItem(e, n), this.keyObject[e] = t
                    }, e.prototype.iterate = function (e) {
                        for (var t = Object.keys(this.keyObject), n = 0; n < t.length; n++) {
                            var r = this.storage.getItem(t[n]);
                            e(JSON.parse(r))
                        }
                    }, e
                }(), _ = function () {
                    function e(e, t) {
                        var n = this;
                        this.dbEventCount = 0, b() > 0 || !window.indexedDB || /X5Lite/.test(navigator.userAgent) ? (this.store = new I(t), this.dbEventCount = this.store.getCount()) : (this.store = new B(e), this.getCount().then((function (e) {
                            n.dbEventCount = e
                        })))
                    }

                    return e.prototype.getCount = function () {
                        return n(this, void 0, void 0, (function () {
                            return o(this, (function (e) {
                                switch (e.label) {
                                    case 0:
                                        return e.trys.push([0, 2, , 3]), [4, this.store.getCount()];
                                    case 1:
                                        return [2, e.sent()];
                                    case 2:
                                        return e.sent(), [2, Promise.reject()];
                                    case 3:
                                        return [2]
                                }
                            }))
                        }))
                    }, e.prototype.insertEvent = function (e, t) {
                        return n(this, void 0, void 0, (function () {
                            var n, r;
                            return o(this, (function (o) {
                                switch (o.label) {
                                    case 0:
                                        if (this.dbEventCount >= 1e4) return [2, Promise.reject()];
                                        n = m(e.mapValue), o.label = 1;
                                    case 1:
                                        return o.trys.push([1, 3, , 4]), this.dbEventCount++, [4, this.store.setItem(n, e)];
                                    case 2:
                                        return [2, o.sent()];
                                    case 3:
                                        return r = o.sent(), t && t(r, e), this.dbEventCount--, [2, Promise.reject()];
                                    case 4:
                                        return [2]
                                }
                            }))
                        }))
                    }, e.prototype.getEvents = function () {
                        return n(this, void 0, void 0, (function () {
                            var e;
                            return o(this, (function (t) {
                                switch (t.label) {
                                    case 0:
                                        e = [], t.label = 1;
                                    case 1:
                                        return t.trys.push([1, 3, , 4]), [4, this.store.iterate((function (t) {
                                            e.push(t)
                                        }))];
                                    case 2:
                                    case 3:
                                        return t.sent(), [2, Promise.all(e)];
                                    case 4:
                                        return [2]
                                }
                            }))
                        }))
                    }, e.prototype.removeEvent = function (e) {
                        return n(this, void 0, void 0, (function () {
                            var t;
                            return o(this, (function (n) {
                                switch (n.label) {
                                    case 0:
                                        t = m(e.mapValue), n.label = 1;
                                    case 1:
                                        return n.trys.push([1, 3, , 4]), this.dbEventCount--, [4, this.store.removeItem(t)];
                                    case 2:
                                        return [2, n.sent()];
                                    case 3:
                                        return n.sent(), this.dbEventCount++, [2, Promise.reject()];
                                    case 4:
                                        return [2]
                                }
                            }))
                        }))
                    }, e
                }(), O = function () {
                    return (O = Object.assign || function (e) {
                        for (var t, n = 1, r = arguments.length; n < r; n++) for (var o in t = arguments[n]) Object.prototype.hasOwnProperty.call(t, o) && (e[o] = t[o]);
                        return e
                    }).apply(this, arguments)
                };

                function P(e) {
                    try {
                        return decodeURIComponent(e.replace(/\+/g, " "))
                    } catch (e) {
                        return null
                    }
                }

                function D(e, t) {
                    var n = [null, void 0, "", NaN].includes(e);
                    if (t.isSkipEmpty && n) return null;
                    var r = !t.isSkipEmpty && n ? "" : e;
                    try {
                        return t.encode ? encodeURIComponent(r) : r
                    } catch (e) {
                        return null
                    }
                }

                function N(e, t) {
                    void 0 === t && (t = {encode: !0, isSkipEmpty: !1});
                    var n = e.url, r = e.query, o = void 0 === r ? {} : r, i = e.hash, a = n.split("#"), s = a[0],
                        c = a[1], u = void 0 === c ? "" : c, l = s.split("?")[0], d = [], p = D(i || u, t),
                        f = O(O({}, function (e) {
                            var t = e.split("#"), n = t[0], r = t[1], o = void 0 === r ? "" : r, i = n.split("?"),
                                a = i[0], s = i[1], c = void 0 === s ? "" : s, u = P(o), l = Object.create(null);
                            return c.split("&").forEach((function (e) {
                                var t = e.split("="), n = t[0], r = t[1], o = void 0 === r ? "" : r, i = P(n), a = P(o);
                                null === i || null === a || "" === i && "" === a || l[i] || (l[i] = a)
                            })), {url: a, query: l, hash: u}
                        }(n).query), o);
                    return Object.keys(f).forEach((function (e) {
                        var n = D(e, t), r = D(f[e], t);
                        null !== n && null !== r && d.push(n + "=" + r)
                    })), l + (d.length ? "?" + d.join("&") : "") + (p ? "#" + p : "")
                }

                function U(e, t) {
                    return new Promise((function (n, r) {
                        if (t && document.querySelectorAll("script[data-tag=" + t + "]").length) return n();
                        var o = document.createElement("script"), i = O({type: "text/javascript", charset: "utf-8"}, e);
                        Object.keys(i).forEach((function (e) {
                            return function (e, t, n) {
                                if (e) return void 0 === n ? e.getAttribute(t) : e.setAttribute(t, n)
                            }(o, e, i[e])
                        })), t && (o.dataset.tag = t), o.onload = function () {
                            return n()
                        }, o.onreadystatechange = function () {
                            var e = o.readyState;
                            ["complete", "loaded"].includes(e) && (o.onreadystatechange = null, n())
                        }, o.onerror = r, document.body.appendChild(o)
                    }))
                }

                (T = w || (w = {}))[T.equal = 0] = "equal", T[T.low = -1] = "low", T[T.high = 1] = "high";
                var M = function () {
                    return (M = Object.assign || function (e) {
                        for (var t, n = 1, r = arguments.length; n < r; n++) for (var o in t = arguments[n]) Object.prototype.hasOwnProperty.call(t, o) && (e[o] = t[o]);
                        return e
                    }).apply(this, arguments)
                };

                function L(e, t, n, r) {
                    return new (n || (n = Promise))((function (o, i) {
                        function a(e) {
                            try {
                                c(r.next(e))
                            } catch (e) {
                                i(e)
                            }
                        }

                        function s(e) {
                            try {
                                c(r.throw(e))
                            } catch (e) {
                                i(e)
                            }
                        }

                        function c(e) {
                            var t;
                            e.done ? o(e.value) : (t = e.value, t instanceof n ? t : new n((function (e) {
                                e(t)
                            }))).then(a, s)
                        }

                        c((r = r.apply(e, t || [])).next())
                    }))
                }

                function H(e, t) {
                    var n, r, o, i, a = {
                        label: 0, sent: function () {
                            if (1 & o[0]) throw o[1];
                            return o[1]
                        }, trys: [], ops: []
                    };
                    return i = {
                        next: s(0),
                        throw: s(1),
                        return: s(2)
                    }, "function" == typeof Symbol && (i[Symbol.iterator] = function () {
                        return this
                    }), i;

                    function s(i) {
                        return function (s) {
                            return function (i) {
                                if (n) throw new TypeError("Generator is already executing.");
                                for (; a;) try {
                                    if (n = 1, r && (o = 2 & i[0] ? r.return : i[0] ? r.throw || ((o = r.return) && o.call(r), 0) : r.next) && !(o = o.call(r, i[1])).done) return o;
                                    switch (r = 0, o && (i = [2 & i[0], o.value]), i[0]) {
                                        case 0:
                                        case 1:
                                            o = i;
                                            break;
                                        case 4:
                                            return a.label++, {value: i[1], done: !1};
                                        case 5:
                                            a.label++, r = i[1], i = [0];
                                            continue;
                                        case 7:
                                            i = a.ops.pop(), a.trys.pop();
                                            continue;
                                        default:
                                            if (!((o = (o = a.trys).length > 0 && o[o.length - 1]) || 6 !== i[0] && 2 !== i[0])) {
                                                a = 0;
                                                continue
                                            }
                                            if (3 === i[0] && (!o || i[1] > o[0] && i[1] < o[3])) {
                                                a.label = i[1];
                                                break
                                            }
                                            if (6 === i[0] && a.label < o[1]) {
                                                a.label = o[1], o = i;
                                                break
                                            }
                                            if (o && a.label < o[2]) {
                                                a.label = o[2], a.ops.push(i);
                                                break
                                            }
                                            o[2] && a.ops.pop(), a.trys.pop();
                                            continue
                                    }
                                    i = t.call(e, a)
                                } catch (e) {
                                    i = [6, e], r = 0
                                } finally {
                                    n = o = 0
                                }
                                if (5 & i[0]) throw i[1];
                                return {value: i[0] ? i[1] : void 0, done: !0}
                            }([i, s])
                        }
                    }
                }

                var j = function () {
                    function e() {
                        this.interceptors = []
                    }

                    return e.prototype.use = function (e, t) {
                        return this.interceptors.push({resolved: e, rejected: t}), this.interceptors.length - 1
                    }, e.prototype.traverse = function (e, t) {
                        void 0 === t && (t = !1);
                        var n = Promise.resolve(e);
                        return (t ? Array.prototype.reduceRight : Array.prototype.reduce).call(this.interceptors, (function (e, t) {
                            if (t) {
                                var r = t.resolved, o = t.rejected;
                                n = n.then(r, o)
                            }
                            return e
                        }), ""), n
                    }, e.prototype.eject = function (e) {
                        this.interceptors[e] && (this.interceptors[e] = null)
                    }, e
                }(), F = {
                    defaults: {
                        timeout: 0,
                        method: "GET",
                        mode: "cors",
                        redirect: "follow",
                        credentials: "same-origin"
                    },
                    headers: {
                        common: {Accept: "application/json, text/plain, */*"},
                        POST: {"Content-Type": "application/x-www-form-urlencoded"},
                        PUT: {"Content-Type": "application/x-www-form-urlencoded"},
                        PATCH: {"Content-Type": "application/x-www-form-urlencoded"}
                    },
                    baseURL: "",
                    polyfillUrl: "https://vm.gtimg.cn/comps/script/fetch.min.js",
                    interceptors: {request: new j, response: new j}
                }, K = /^([a-z][a-z\d+\-.]*:)?\/\//i, q = Object.prototype.toString;

                function z(e) {
                    return L(this, void 0, void 0, (function () {
                        var t;
                        return H(this, (function (n) {
                            switch (n.label) {
                                case 0:
                                    if (window.fetch) return [2];
                                    n.label = 1;
                                case 1:
                                    return n.trys.push([1, 3, , 4]), [4, U({src: e})];
                                case 2:
                                    return n.sent(), [3, 4];
                                case 3:
                                    throw t = n.sent(), function (e) {
                                        if ("undefined" != typeof Image) {
                                            var t = new Image(1, 1), n = M({
                                                attaid: "0f400053130",
                                                token: "6552374442",
                                                comps: "@tencent/ovb-request",
                                                version: "1.1.18",
                                                ua: navigator.userAgent,
                                                url: location.href,
                                                _dc: Math.random()
                                            }, e), r = Object.keys(n).map((function (e) {
                                                return e + "=" + encodeURIComponent(n[e])
                                            })).join("&");
                                            t.src = "https://h.trace.qq.com/kv?" + r
                                        }
                                    }({
                                        func: "loadPolyfill",
                                        result: 0,
                                        params: e,
                                        error_msg: t.message
                                    }), new Error("加载 polyfill " + e + " 失败: " + t.message);
                                case 4:
                                    return [2]
                            }
                        }))
                    }))
                }

                function G(e) {
                    return L(this, void 0, void 0, (function () {
                        var t, n, r, o, i, a, s, c, u, l, d, p, f, h, m, g, y;
                        return H(this, (function (v) {
                            switch (v.label) {
                                case 0:
                                    return t = F.baseURL, n = F.defaults, r = F.interceptors, [4, z(F.polyfillUrl)];
                                case 1:
                                    return v.sent(), (o = M(M({}, n), e)).headers || (o.headers = function (e) {
                                        void 0 === e && (e = "GET");
                                        var t = F.headers[e] || {};
                                        return M(M({}, F.headers.common), t)
                                    }(o.method)), function (e) {
                                        ["Accept", "Content-Type"].forEach((function (t) {
                                            return n = t, void ((r = e.headers) && Object.keys(r).forEach((function (e) {
                                                e !== n && e.toUpperCase() === n.toUpperCase() && (r[n] = r[e], delete r[e])
                                            })));
                                            var n, r
                                        })), function (e) {
                                            if ("[object Object]" !== q.call(e)) return !1;
                                            var t = Object.getPrototypeOf(e);
                                            return null === t || t === Object.prototype
                                        }(e.body) && (e.body = JSON.stringify(e.body), e.headers && (e.headers["Content-Type"] = "application/json;charset=utf-8"))
                                    }(o), [4, r.request.traverse(o, !0)];
                                case 2:
                                    if ((i = v.sent()) instanceof Error) throw i;
                                    return i.url = function (e, t) {
                                        return !e || K.test(t) ? t : e.replace(/\/+$/, "") + "/" + t.replace(/^\/+/, "")
                                    }(t, i.url), a = i.url, s = i.timeout, c = i.params, u = i.method, l = ["GET", "DELETE", "OPTIONS", "HEAD"].includes(void 0 === u ? "GET" : u) && !!c, d = l ? N({
                                        url: a,
                                        query: c
                                    }) : a, p = [], s && !i.signal && (m = new Promise((function (e) {
                                        f = setTimeout((function () {
                                            e(new Error("timeout"))
                                        }), s)
                                    })), p.push(m), h = new AbortController, i.signal = h.signal), p.push(fetch(d, i).catch((function (e) {
                                        return e
                                    }))), [4, Promise.race(p)];
                                case 3:
                                    return g = v.sent(), f && clearTimeout(f), [4, r.response.traverse(g)];
                                case 4:
                                    if ((y = v.sent()) instanceof Error) throw null == h || h.abort(), y;
                                    return [2, y]
                            }
                        }))
                    }))
                }

                var V = function () {
                    function e(e) {
                        F.interceptors.request.use((function (n) {
                            var r = n.url, o = n.method, i = n.body, a = i;
                            if (e.onReportBeforeSend) {
                                var s = e.onReportBeforeSend({url: r, method: o, data: i ? JSON.parse(i) : null});
                                a = (null == s ? void 0 : s.data) ? JSON.stringify(s.data) : null
                            }
                            if ("GET" !== o && !a) throw new Error("No data for sdk, cancel.");
                            return t(t({}, n), {body: a})
                        }))
                    }

                    return e.prototype.get = function (e, r) {
                        return n(this, void 0, void 0, (function () {
                            var n, i;
                            return o(this, (function (o) {
                                switch (o.label) {
                                    case 0:
                                        return [4, G(t({url: e}, r))];
                                    case 1:
                                        return [4, (n = o.sent()).json()];
                                    case 2:
                                        return i = o.sent(), [2, Promise.resolve({
                                            data: i,
                                            status: n.status,
                                            statusText: n.statusText,
                                            headers: n.headers
                                        })]
                                }
                            }))
                        }))
                    }, e.prototype.post = function (e, r, i) {
                        return n(this, void 0, void 0, (function () {
                            var n, a;
                            return o(this, (function (o) {
                                switch (o.label) {
                                    case 0:
                                        return [4, G(t({url: e, body: r, method: "POST"}, i))];
                                    case 1:
                                        return [4, (n = o.sent()).json()];
                                    case 2:
                                        return a = o.sent(), [2, Promise.resolve({
                                            data: a,
                                            status: n.status,
                                            statusText: n.statusText,
                                            headers: n.headers
                                        })]
                                }
                            }))
                        }))
                    }, e
                }(), X = function () {
                    function e(e) {
                        this.appkey = e
                    }

                    return e.prototype.getItem = function (e) {
                        try {
                            return window.localStorage.getItem(this.getStoreKey(e))
                        } catch (e) {
                            return ""
                        }
                    }, e.prototype.removeItem = function (e) {
                        try {
                            window.localStorage.removeItem(this.getStoreKey(e))
                        } catch (e) {
                        }
                    }, e.prototype.setItem = function (e, t) {
                        try {
                            window.localStorage.setItem(this.getStoreKey(e), t)
                        } catch (e) {
                        }
                    }, e.prototype.setSessionItem = function (e, t) {
                        try {
                            window.sessionStorage.setItem(this.getStoreKey(e), t)
                        } catch (e) {
                        }
                    }, e.prototype.getSessionItem = function (e) {
                        try {
                            return window.sessionStorage.getItem(this.getStoreKey(e))
                        } catch (e) {
                            return ""
                        }
                    }, e.prototype.getStoreKey = function (e) {
                        return i + this.appkey + "_" + e
                    }, e.prototype.createDeviceId = function () {
                        try {
                            var e = window.localStorage.getItem(a);
                            return e || (e = function (e) {
                                for (var t = "ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz0123456789", n = "", r = 0; r < 32; r++) n += t.charAt(Math.floor(Math.random() * t.length));
                                return n
                            }(), window.localStorage.setItem(a, e)), e
                        } catch (e) {
                            return ""
                        }
                    }, e.prototype.clear = function () {
                        try {
                            for (var e = window.localStorage.length, t = 0; t < e; t++) {
                                var n = window.localStorage.key(t);
                                (null == n ? void 0 : n.substr(0, 9)) == i && window.localStorage.removeItem(n)
                            }
                        } catch (e) {
                        }
                    }, e.prototype.getStoreCount = function () {
                        var e = 0;
                        try {
                            e = window.localStorage.length
                        } catch (e) {
                        }
                        return e
                    }, e
                }();
                "undefined" != typeof globalThis ? globalThis : "undefined" != typeof window ? window : void 0 !== r || "undefined" != typeof self && self;
                var W, J = (function (e, t) {
                    e.exports = function () {
                        function e(e, t, n, r, o, i, a) {
                            try {
                                var s = e[i](a), c = s.value
                            } catch (e) {
                                return void n(e)
                            }
                            s.done ? t(c) : Promise.resolve(c).then(r, o)
                        }

                        function t(e, t) {
                            for (var n = 0; n < t.length; n++) {
                                var r = t[n];
                                r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(e, r.key, r)
                            }
                        }

                        var n, r = (function (e) {
                            e = function (e) {
                                var t, n = Object.prototype, r = n.hasOwnProperty,
                                    o = "function" == typeof Symbol ? Symbol : {}, i = o.iterator || "@@iterator",
                                    a = o.asyncIterator || "@@asyncIterator", c = o.toStringTag || "@@toStringTag";

                                function u(e, t, n) {
                                    return Object.defineProperty(e, t, {
                                        value: n,
                                        enumerable: !0,
                                        configurable: !0,
                                        writable: !0
                                    }), e[t]
                                }

                                try {
                                    u({}, "")
                                } catch (n) {
                                    u = function (e, t, n) {
                                        return e[t] = n
                                    }
                                }

                                function l(e, n, r, o) {
                                    var i, a, s, c;
                                    return n = n && n.prototype instanceof y ? n : y, n = Object.create(n.prototype), o = new E(o || []), n._invoke = (i = e, a = r, s = o, c = p, function (e, n) {
                                        if (c === h) throw new Error("Generator is already running");
                                        if (c === m) {
                                            if ("throw" === e) throw n;
                                            return A()
                                        }
                                        for (s.method = e, s.arg = n; ;) {
                                            var r = s.delegate;
                                            if (r) {
                                                var o = function e(n, r) {
                                                    var o;
                                                    if ((o = n.iterator[r.method]) === t) {
                                                        if (r.delegate = null, "throw" === r.method) {
                                                            if (n.iterator.return && (r.method = "return", r.arg = t, e(n, r), "throw" === r.method)) return g;
                                                            r.method = "throw", r.arg = new TypeError("The iterator does not provide a 'throw' method")
                                                        }
                                                        return g
                                                    }
                                                    return "throw" === (o = d(o, n.iterator, r.arg)).type ? (r.method = "throw", r.arg = o.arg, r.delegate = null, g) : (o = o.arg) ? o.done ? (r[n.resultName] = o.value, r.next = n.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, g) : o : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, g)
                                                }(r, s);
                                                if (o) {
                                                    if (o === g) continue;
                                                    return o
                                                }
                                            }
                                            if ("next" === s.method) s.sent = s._sent = s.arg; else if ("throw" === s.method) {
                                                if (c === p) throw c = m, s.arg;
                                                s.dispatchException(s.arg)
                                            } else "return" === s.method && s.abrupt("return", s.arg);
                                            if (c = h, "normal" === (o = d(i, a, s)).type) {
                                                if (c = s.done ? m : f, o.arg !== g) return {value: o.arg, done: s.done}
                                            } else "throw" === o.type && (c = m, s.method = "throw", s.arg = o.arg)
                                        }
                                    }), n
                                }

                                function d(e, t, n) {
                                    try {
                                        return {type: "normal", arg: e.call(t, n)}
                                    } catch (e) {
                                        return {type: "throw", arg: e}
                                    }
                                }

                                e.wrap = l;
                                var p = "suspendedStart", f = "suspendedYield", h = "executing", m = "completed",
                                    g = {};

                                function y() {
                                }

                                function v() {
                                }

                                function C() {
                                }

                                var k = {};
                                k[i] = function () {
                                    return this
                                }, (o = (o = Object.getPrototypeOf) && o(o(x([])))) && o !== n && r.call(o, i) && (k = o);
                                var S = C.prototype = y.prototype = Object.create(k);

                                function b(e) {
                                    ["next", "throw", "return"].forEach((function (t) {
                                        u(e, t, (function (e) {
                                            return this._invoke(t, e)
                                        }))
                                    }))
                                }

                                function w(e, t) {
                                    var n;
                                    this._invoke = function (o, i) {
                                        function a() {
                                            return new t((function (n, a) {
                                                !function n(o, i, a, c) {
                                                    if ("throw" !== (o = d(e[o], e, i)).type) {
                                                        var u = o.arg;
                                                        return (i = u.value) && "object" == s(i) && r.call(i, "__await") ? t.resolve(i.__await).then((function (e) {
                                                            n("next", e, a, c)
                                                        }), (function (e) {
                                                            n("throw", e, a, c)
                                                        })) : t.resolve(i).then((function (e) {
                                                            u.value = e, a(u)
                                                        }), (function (e) {
                                                            return n("throw", e, a, c)
                                                        }))
                                                    }
                                                    c(o.arg)
                                                }(o, i, n, a)
                                            }))
                                        }

                                        return n = n ? n.then(a, a) : a()
                                    }
                                }

                                function T(e) {
                                    var t = {tryLoc: e[0]};
                                    1 in e && (t.catchLoc = e[1]), 2 in e && (t.finallyLoc = e[2], t.afterLoc = e[3]), this.tryEntries.push(t)
                                }

                                function R(e) {
                                    var t = e.completion || {};
                                    t.type = "normal", delete t.arg, e.completion = t
                                }

                                function E(e) {
                                    this.tryEntries = [{tryLoc: "root"}], e.forEach(T, this), this.reset(!0)
                                }

                                function x(e) {
                                    if (e) {
                                        if (n = e[i]) return n.call(e);
                                        if ("function" == typeof e.next) return e;
                                        if (!isNaN(e.length)) {
                                            var n, o = -1;
                                            return (n = function n() {
                                                for (; ++o < e.length;) if (r.call(e, o)) return n.value = e[o], n.done = !1, n;
                                                return n.value = t, n.done = !0, n
                                            }).next = n
                                        }
                                    }
                                    return {next: A}
                                }

                                function A() {
                                    return {value: t, done: !0}
                                }

                                return ((v.prototype = S.constructor = C).constructor = v).displayName = u(C, c, "GeneratorFunction"), e.isGeneratorFunction = function (e) {
                                    return !!(e = "function" == typeof e && e.constructor) && (e === v || "GeneratorFunction" === (e.displayName || e.name))
                                }, e.mark = function (e) {
                                    return Object.setPrototypeOf ? Object.setPrototypeOf(e, C) : (e.__proto__ = C, u(e, c, "GeneratorFunction")), e.prototype = Object.create(S), e
                                }, e.awrap = function (e) {
                                    return {__await: e}
                                }, b(w.prototype), w.prototype[a] = function () {
                                    return this
                                }, e.AsyncIterator = w, e.async = function (t, n, r, o, i) {
                                    void 0 === i && (i = Promise);
                                    var a = new w(l(t, n, r, o), i);
                                    return e.isGeneratorFunction(n) ? a : a.next().then((function (e) {
                                        return e.done ? e.value : a.next()
                                    }))
                                }, b(S), u(S, c, "Generator"), S[i] = function () {
                                    return this
                                }, S.toString = function () {
                                    return "[object Generator]"
                                }, e.keys = function (e) {
                                    var t, n = [];
                                    for (t in e) n.push(t);
                                    return n.reverse(), function t() {
                                        for (; n.length;) {
                                            var r = n.pop();
                                            if (r in e) return t.value = r, t.done = !1, t
                                        }
                                        return t.done = !0, t
                                    }
                                }, e.values = x, E.prototype = {
                                    constructor: E, reset: function (e) {
                                        if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(R), !e) for (var n in this) "t" === n.charAt(0) && r.call(this, n) && !isNaN(+n.slice(1)) && (this[n] = t)
                                    }, stop: function () {
                                        this.done = !0;
                                        var e = this.tryEntries[0].completion;
                                        if ("throw" === e.type) throw e.arg;
                                        return this.rval
                                    }, dispatchException: function (e) {
                                        if (this.done) throw e;
                                        var n = this;

                                        function o(r, o) {
                                            return s.type = "throw", s.arg = e, n.next = r, o && (n.method = "next", n.arg = t), !!o
                                        }

                                        for (var i = this.tryEntries.length - 1; 0 <= i; --i) {
                                            var a = this.tryEntries[i], s = a.completion;
                                            if ("root" === a.tryLoc) return o("end");
                                            if (a.tryLoc <= this.prev) {
                                                var c = r.call(a, "catchLoc"), u = r.call(a, "finallyLoc");
                                                if (c && u) {
                                                    if (this.prev < a.catchLoc) return o(a.catchLoc, !0);
                                                    if (this.prev < a.finallyLoc) return o(a.finallyLoc)
                                                } else if (c) {
                                                    if (this.prev < a.catchLoc) return o(a.catchLoc, !0)
                                                } else {
                                                    if (!u) throw new Error("try statement without catch or finally");
                                                    if (this.prev < a.finallyLoc) return o(a.finallyLoc)
                                                }
                                            }
                                        }
                                    }, abrupt: function (e, t) {
                                        for (var n = this.tryEntries.length - 1; 0 <= n; --n) {
                                            var o = this.tryEntries[n];
                                            if (o.tryLoc <= this.prev && r.call(o, "finallyLoc") && this.prev < o.finallyLoc) {
                                                var i = o;
                                                break
                                            }
                                        }
                                        var a = (i = i && ("break" === e || "continue" === e) && i.tryLoc <= t && t <= i.finallyLoc ? null : i) ? i.completion : {};
                                        return a.type = e, a.arg = t, i ? (this.method = "next", this.next = i.finallyLoc, g) : this.complete(a)
                                    }, complete: function (e, t) {
                                        if ("throw" === e.type) throw e.arg;
                                        return "break" === e.type || "continue" === e.type ? this.next = e.arg : "return" === e.type ? (this.rval = this.arg = e.arg, this.method = "return", this.next = "end") : "normal" === e.type && t && (this.next = t), g
                                    }, finish: function (e) {
                                        for (var t = this.tryEntries.length - 1; 0 <= t; --t) {
                                            var n = this.tryEntries[t];
                                            if (n.finallyLoc === e) return this.complete(n.completion, n.afterLoc), R(n), g
                                        }
                                    }, catch: function (e) {
                                        for (var t = this.tryEntries.length - 1; 0 <= t; --t) {
                                            var n = this.tryEntries[t];
                                            if (n.tryLoc === e) {
                                                var r, o = n.completion;
                                                return "throw" === o.type && (r = o.arg, R(n)), r
                                            }
                                        }
                                        throw new Error("illegal catch attempt")
                                    }, delegateYield: function (e, n, r) {
                                        return this.delegate = {
                                            iterator: x(e),
                                            resultName: n,
                                            nextLoc: r
                                        }, "next" === this.method && (this.arg = t), g
                                    }
                                }, e
                            }(e.exports);
                            try {
                                regeneratorRuntime = e
                            } catch (t) {
                                Function("r", "regeneratorRuntime = r")(e)
                            }
                        }(n = {exports: {}}), n.exports);
                        return function () {
                            function n(e) {
                                !function (e, t) {
                                    if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
                                }(this, n), this.version = "1.0.0";
                                var t = Array.prototype.map, r = Array.prototype.forEach;
                                e && (this.hasher = e), this.each = function (e, t, n) {
                                    if (null != e) if (r && e.forEach === r) e.forEach(t, n); else if (e.length === +e.length) {
                                        for (var o = 0, i = e.length; o < i; o++) if (t.call(n, e[o], o, e) === {}) return
                                    } else for (var a in e) if (e.hasOwnProperty(a) && t.call(n, e[a], a, e) === {}) return
                                }, this.map = function (e, n, r) {
                                    var o = [];
                                    return null == e ? o : t && e.map === t ? e.map(n, r) : (this.each(e, (function (e, t, i) {
                                        o[o.length] = n.call(r, e, t, i)
                                    })), o)
                                }
                            }

                            var o, i, a, s;
                            return o = n, (i = [{
                                key: "getQimei36", value: function (e, t) {
                                    var n = this;
                                    this.getHid().then((function (r) {
                                        var o = "3BJr" + e.substring(0, 2) + (r && r.substring(3, 7)),
                                            i = new XMLHttpRequest;
                                        i.open("POST", "https://snowflake.qq.com/ola/h5", !0), i.setRequestHeader("Content-Type", "application/json"), i.onreadystatechange = function () {
                                            if (i.readyState == XMLHttpRequest.DONE && 200 == i.status) try {
                                                t && t(JSON.parse(i.responseText))
                                            } catch (e) {
                                                t(null)
                                            }
                                        }, i.send(JSON.stringify({appKey: e, hid: r, sign: o, version: n.version}))
                                    }))
                                }
                            }, {
                                key: "getHid", value: (a = r.mark((function e() {
                                    var t, n;
                                    return r.wrap((function (e) {
                                        for (; ;) switch (e.prev = e.next) {
                                            case 0:
                                                return (t = []).push((r = void 0, (r = [Math.floor(window.screen.width * window.devicePixelRatio), Math.floor(window.screen.height * window.devicePixelRatio)]).sort().reverse(), r.join("x"))), t.push((r = void 0, (r = [Math.floor(window.screen.availWidth * window.devicePixelRatio), Math.floor(window.screen.availHeight * window.devicePixelRatio)]).sort().reverse(), r.join("x"))), t.push(navigator.deviceMemory), t.push(!!window.sessionStorage), t.push(!!window.indexedDB), t.push(navigator.productSub), t.push(navigator.hardwareConcurrency), t.push(this.getWebglVendorAndRenderer()), t.push((new Date).getTimezoneOffset()), e.next = 12, this.getFactor();
                                            case 12:
                                                if (n = e.sent, t.push(n), this.hasher) return e.abrupt("return", this.hasher(t.join("###"), 31));
                                                e.next = 18;
                                                break;
                                            case 18:
                                                return e.abrupt("return", this.x64hash128(t.join("###"), 31));
                                            case 19:
                                            case"end":
                                                return e.stop()
                                        }
                                        var r
                                    }), e, this)
                                })), s = function () {
                                    var t = this, n = arguments;
                                    return new Promise((function (r, o) {
                                        var i = a.apply(t, n);

                                        function s(t) {
                                            e(i, r, o, s, c, "next", t)
                                        }

                                        function c(t) {
                                            e(i, r, o, s, c, "throw", t)
                                        }

                                        s(void 0)
                                    }))
                                }, function () {
                                    return s.apply(this, arguments)
                                })
                            }, {
                                key: "getUserAgent", value: function () {
                                    return navigator.userAgent
                                }
                            }, {
                                key: "getNative", value: function () {
                                    var e = this;
                                    this.getHid().then((function (t) {
                                        JSInterface.callback(e.version, t, e.getUserAgent())
                                    }))
                                }
                            }, {
                                key: "getWebglVendorAndRenderer", value: function () {
                                    try {
                                        var e = function () {
                                                var e = document.createElement("canvas"), t = null;
                                                try {
                                                    t = e.getContext("webgl") || e.getContext("experimental-webgl")
                                                } catch (e) {
                                                }
                                                return t || null
                                            }(), t = e.getExtension("WEBGL_debug_renderer_info"),
                                            n = [e.getParameter(t.UNMASKED_VENDOR_WEBGL), e.getParameter(t.UNMASKED_RENDERER_WEBGL)].join("~"),
                                            r = e.getExtension("WEBGL_lose_context");
                                        return null != r && r.loseContext(), n
                                    } catch (e) {
                                        return null
                                    }
                                }
                            }, {
                                key: "getFactor", value: function () {
                                    return new Promise((function (e, t) {
                                        var n = window.RTCPeerConnection || window.webkitRTCPeerConnection || window.mozRTCPeerConnection;
                                        n ? function () {
                                            var t = new n({iceServers: []});
                                            t.createDataChannel("", {reliable: !1}), t.onicecandidate = function (e) {
                                                e.candidate && i("a=".concat(e.candidate.candidate))
                                            }, t.createOffer((function (e) {
                                                i(e.sdp), t.setLocalDescription(e)
                                            }), (function (e) {
                                            }));
                                            var r = Object.create(null);

                                            function o(t) {
                                                if (!(t in r)) {
                                                    r[t] = !0;
                                                    for (var n = Object.keys(r).filter((function (e) {
                                                        return r[e]
                                                    })), o = 0; o < n.length; o++) 16 < n[o].length && (n.splice(o, 1), o--);
                                                    e(n[0])
                                                }
                                            }

                                            function i(e) {
                                                (0 < arguments.length && void 0 !== e ? e : "").split("\r\n").forEach((function (e, t, n) {
                                                    var r, i;
                                                    ~e.indexOf("a=candidate") ? (i = (r = e.split(" "))[4], "host" === r[7] && o(i)) : ~e.indexOf("c=") && o(e.split(" ")[2])
                                                }))
                                            }

                                            r["0.0.0.0"] = !1
                                        }() : e(null)
                                    }))
                                }
                            }, {
                                key: "x64hash128", value: function (e, t) {
                                    for (var n = function (e, t) {
                                        e = [e[0] >>> 16, 65535 & e[0], e[1] >>> 16, 65535 & e[1]], t = [t[0] >>> 16, 65535 & t[0], t[1] >>> 16, 65535 & t[1]];
                                        var n = [0, 0, 0, 0];
                                        return n[3] += e[3] + t[3], n[2] += n[3] >>> 16, n[3] &= 65535, n[2] += e[2] + t[2], n[1] += n[2] >>> 16, n[2] &= 65535, n[1] += e[1] + t[1], n[0] += n[1] >>> 16, n[1] &= 65535, n[0] += e[0] + t[0], n[0] &= 65535, [n[0] << 16 | n[1], n[2] << 16 | n[3]]
                                    }, r = function (e, t) {
                                        e = [e[0] >>> 16, 65535 & e[0], e[1] >>> 16, 65535 & e[1]], t = [t[0] >>> 16, 65535 & t[0], t[1] >>> 16, 65535 & t[1]];
                                        var n = [0, 0, 0, 0];
                                        return n[3] += e[3] * t[3], n[2] += n[3] >>> 16, n[3] &= 65535, n[2] += e[2] * t[3], n[1] += n[2] >>> 16, n[2] &= 65535, n[2] += e[3] * t[2], n[1] += n[2] >>> 16, n[2] &= 65535, n[1] += e[1] * t[3], n[0] += n[1] >>> 16, n[1] &= 65535, n[1] += e[2] * t[2], n[0] += n[1] >>> 16, n[1] &= 65535, n[1] += e[3] * t[1], n[0] += n[1] >>> 16, n[1] &= 65535, n[0] += e[0] * t[3] + e[1] * t[2] + e[2] * t[1] + e[3] * t[0], n[0] &= 65535, [n[0] << 16 | n[1], n[2] << 16 | n[3]]
                                    }, o = function (e, t) {
                                        return 32 == (t %= 64) ? [e[1], e[0]] : t < 32 ? [e[0] << t | e[1] >>> 32 - t, e[1] << t | e[0] >>> 32 - t] : [e[1] << (t -= 32) | e[0] >>> 32 - t, e[0] << t | e[1] >>> 32 - t]
                                    }, i = function (e, t) {
                                        return 0 == (t %= 64) ? e : t < 32 ? [e[0] << t | e[1] >>> 32 - t, e[1] << t] : [e[1] << t - 32, 0]
                                    }, a = function (e, t) {
                                        return [e[0] ^ t[0], e[1] ^ t[1]]
                                    }, s = function (e) {
                                        return e = a(e, [0, e[0] >>> 1]), e = r(e, [4283543511, 3981806797]), e = a(e, [0, e[0] >>> 1]), e = r(e, [3301882366, 444984403]), a(e, [0, e[0] >>> 1])
                                    }, c = (e = e || "").length % 16, u = e.length - c, l = [0, t = t || 0], d = [0, t], p = [0, 0], f = [0, 0], h = [2277735313, 289559509], m = [1291169091, 658871167], g = 0; g < u; g += 16) p = [255 & e.charCodeAt(g + 4) | (255 & e.charCodeAt(g + 5)) << 8 | (255 & e.charCodeAt(g + 6)) << 16 | (255 & e.charCodeAt(g + 7)) << 24, 255 & e.charCodeAt(g) | (255 & e.charCodeAt(g + 1)) << 8 | (255 & e.charCodeAt(g + 2)) << 16 | (255 & e.charCodeAt(g + 3)) << 24], f = [255 & e.charCodeAt(g + 12) | (255 & e.charCodeAt(g + 13)) << 8 | (255 & e.charCodeAt(g + 14)) << 16 | (255 & e.charCodeAt(g + 15)) << 24, 255 & e.charCodeAt(g + 8) | (255 & e.charCodeAt(g + 9)) << 8 | (255 & e.charCodeAt(g + 10)) << 16 | (255 & e.charCodeAt(g + 11)) << 24], p = o(p = r(p, h), 31), p = r(p, m), l = n(l = o(l = a(l, p), 27), d), l = n(r(l, [0, 5]), [0, 1390208809]), f = o(f = r(f, m), 33), f = r(f, h), d = n(d = o(d = a(d, f), 31), l), d = n(r(d, [0, 5]), [0, 944331445]);
                                    switch (p = [0, 0], f = [0, 0], c) {
                                        case 15:
                                            f = a(f, i([0, e.charCodeAt(g + 14)], 48));
                                        case 14:
                                            f = a(f, i([0, e.charCodeAt(g + 13)], 40));
                                        case 13:
                                            f = a(f, i([0, e.charCodeAt(g + 12)], 32));
                                        case 12:
                                            f = a(f, i([0, e.charCodeAt(g + 11)], 24));
                                        case 11:
                                            f = a(f, i([0, e.charCodeAt(g + 10)], 16));
                                        case 10:
                                            f = a(f, i([0, e.charCodeAt(g + 9)], 8));
                                        case 9:
                                            f = a(f, [0, e.charCodeAt(g + 8)]), f = o(f = r(f, m), 33), f = r(f, h), d = a(d, f);
                                        case 8:
                                            p = a(p, i([0, e.charCodeAt(g + 7)], 56));
                                        case 7:
                                            p = a(p, i([0, e.charCodeAt(g + 6)], 48));
                                        case 6:
                                            p = a(p, i([0, e.charCodeAt(g + 5)], 40));
                                        case 5:
                                            p = a(p, i([0, e.charCodeAt(g + 4)], 32));
                                        case 4:
                                            p = a(p, i([0, e.charCodeAt(g + 3)], 24));
                                        case 3:
                                            p = a(p, i([0, e.charCodeAt(g + 2)], 16));
                                        case 2:
                                            p = a(p, i([0, e.charCodeAt(g + 1)], 8));
                                        case 1:
                                            p = a(p, [e.charCodeAt(g)]), p = o(p = r(p, h), 31), p = r(p, m), l = a(l, p)
                                    }
                                    return l = a(l, [0, e.length]), d = n(d = a(d, [0, e.length]), l = n(l, d)), l = s(l), d = n(d = s(d), l = n(l, d)), ("00000000" + (l[0] >>> 0).toString(16)).slice(-8) + ("00000000" + (l[1] >>> 0).toString(16)).slice(-8) + ("00000000" + (d[0] >>> 0).toString(16)).slice(-8) + ("00000000" + (d[1] >>> 0).toString(16)).slice(-8)
                                }
                            }]) && t(o.prototype, i), n
                        }()
                    }()
                }(W = {exports: {}}), W.exports), Q = "logid_start", $ = "4.5.6-web";
                return function (n) {
                    function r(e) {
                        var t = n.call(this, e) || this;
                        t.qimei36 = "", t.uselessCycleTaskNum = 0, t.underWeakNet = !1, t.send = function (e, n, r) {
                            t.storage.setItem(c, Date.now().toString()), t.network.post(t.uploadUrl || t.strategy.getUploadUrl(), e.data).then((function (r) {
                                var o;
                                100 == (null === (o = null == r ? void 0 : r.data) || void 0 === o ? void 0 : o.result) ? t.delayTime = 1e3 * r.data.delayTime : t.delayTime = 0, n && n(e.data), e.data.events.forEach((function (e) {
                                    t.store.removeEvent(e).then((function () {
                                        t.removeSendingId(m(e.mapValue))
                                    }))
                                })), t.doCustomCycleTask()
                            })).catch((function (n) {
                                var o = e.data.events;
                                t.errorReport.reportError(n.code ? n.code.toString() : "600", n.message), r && r(e.data);
                                var i = JSON.parse(t.storage.getItem(u));
                                o.forEach((function (e) {
                                    i && -1 != i.indexOf(m(e)) && t.store.insertEvent(e, (function (e, n) {
                                        e && t.errorReport.reportError("604", "insertEvent fail!")
                                    })), t.removeSendingId(m(e))
                                })), t.monitorUploadFailed()
                            }))
                        };
                        var r, o, i = b();
                        return t.isUnderIE8 = i > 0 && i < 8, t.isUnderIE8 || (t.isUnderIE = i > 0, e.needInitQimei && t.initQimei(e.appkey), t.network = new V(e), t.storage = new X(e.appkey), t.initCommonInfo(e), t.store = new _(e.appkey, t.storage), t.errorReport = new v(t.config, t.commonInfo, "web", t.network), t.strategy = new C(t.config, t.commonInfo, t.storage, t.network), t.logidStartTime = t.storage.getItem(Q), t.logidStartTime || (t.logidStartTime = Date.now().toString(), t.storage.setItem(Q, t.logidStartTime)), r = t.logidStartTime, o = Date.now() - Number.parseFloat(r), Math.floor(o / 864e5) >= 365 && t.storage.clear(), t.initSession(e), t.onDirectUserAction("rqd_js_init", {}), setTimeout((function () {
                            return t.lifeCycle.emit("init")
                        }), 0), t.initDelayTime = e.delay ? e.delay : 1e3, t.cycleTask(t.initDelayTime)), t
                    }

                    return function (t, n) {
                        if ("function" != typeof n && null !== n) throw new TypeError("Class extends value " + String(n) + " is not a constructor or null");

                        function r() {
                            this.constructor = t
                        }

                        e(t, n), t.prototype = null === n ? Object.create(n) : (r.prototype = n.prototype, new r)
                    }(r, n), r.prototype.initQimei = function (e) {
                        var t = this;
                        (new J).getQimei36(e, (function (e) {
                            t.qimei36 = e.q36
                        }))
                    }, r.prototype.initSession = function (e) {
                        var t = 18e5;
                        e.sessionDuration && e.sessionDuration > 3e4 && (t = e.sessionDuration), this.beaconSession = new S(this.storage, t, this)
                    }, r.prototype.initCommonInfo = function (e) {
                        var t = Number(this.storage.getItem(c));
                        try {
                            var n = JSON.parse(this.storage.getItem(u));
                            (Date.now() - t > 3e4 || !n) && this.storage.setItem(u, JSON.stringify([]))
                        } catch (e) {
                        }
                        e.uploadUrl && (this.uploadUrl = e.uploadUrl + "?appkey=" + e.appkey);
                        var r = [window.screen.width, window.screen.height];
                        window.devicePixelRatio && r.push(window.devicePixelRatio), this.commonInfo = {
                            deviceId: this.storage.createDeviceId(),
                            language: navigator && navigator.language || "zh_CN",
                            query: window.location.search,
                            userAgent: navigator.userAgent,
                            pixel: r.join("*"),
                            channelID: e.channelID ? String(e.channelID) : "",
                            openid: e.openid ? String(e.openid) : "",
                            unid: e.unionid ? String(e.unionid) : "",
                            sdkVersion: $
                        }, this.config.appVersion = e.versionCode ? String(e.versionCode) : "", this.config.strictMode = e.strictMode
                    }, r.prototype.cycleTask = function (e) {
                        var t = this;
                        this.intervalID = window.setInterval((function () {
                            t.store.getEvents().then((function (e) {
                                var n = [], r = JSON.parse(t.storage.getItem(u));
                                r || (r = []), e && e.forEach((function (e) {
                                    var t = m(e.mapValue);
                                    -1 == r.indexOf(t) && (n.push(e), r.push(t))
                                })), 0 != n.length && (t.storage.setItem(u, JSON.stringify(r)), t._normalLogPipeline(t.assembleData(n)))
                            })).catch((function (e) {
                            }))
                        }), e)
                    }, r.prototype.onReport = function (e, t, n) {
                        var r = this;
                        if (this.isUnderIE8) this.errorReport.reportError("601", "UnderIE8"); else {
                            var o = this.generateData(e, t, n);
                            if (n && 0 == this.delayTime && !this.underWeakNet) this._normalLogPipeline(this.assembleData(o)); else {
                                var i = o.shift();
                                i && this.store.insertEvent(i, (function (e) {
                                    e && r.errorReport.reportError("604", "insertEvent fail!")
                                })).catch((function (e) {
                                    r._normalLogPipeline(r.assembleData(o))
                                }))
                            }
                        }
                    }, r.prototype.onSendBeacon = function (e, t) {
                        if (this.isUnderIE) this.errorReport.reportError("605", "UnderIE"); else {
                            var n = this.assembleData(this.generateData(e, t, !0));
                            "function" == typeof navigator.sendBeacon && navigator.sendBeacon(this.uploadUrl || this.strategy.getUploadUrl(), JSON.stringify(n))
                        }
                    }, r.prototype.generateData = function (e, n, r) {
                        var o = [], i = "4.5.6-web_" + (r ? "direct_log_id" : "normal_log_id"),
                            a = Number(this.storage.getItem(i));
                        return a = a || 1, n = t(t({}, n), {
                            A99: r ? "Y" : "N",
                            A100: a.toString(),
                            A72: $,
                            A88: this.logidStartTime
                        }), a++, this.storage.setItem(i, a.toString()), o.push({
                            eventCode: e,
                            eventTime: Date.now().toString(),
                            mapValue: f(n, this.config.strictMode)
                        }), o
                    }, r.prototype.assembleData = function (e) {
                        var n = this.beaconSession.getSession();
                        return {
                            appVersion: this.config.appVersion ? h(this.config.appVersion) : "",
                            sdkId: "js",
                            sdkVersion: $,
                            mainAppKey: this.config.appkey,
                            platformId: 3,
                            common: f(t(t({}, this.additionalParams), {
                                A2: this.commonInfo.deviceId,
                                A8: this.commonInfo.openid,
                                A12: this.commonInfo.language,
                                A17: this.commonInfo.pixel,
                                A23: this.commonInfo.channelID,
                                A50: this.commonInfo.unid,
                                A76: n.sessionId,
                                A101: this.commonInfo.userAgent,
                                A102: window.location.href,
                                A104: document.referrer,
                                A119: this.commonInfo.query,
                                A153: this.qimei36
                            }), !1),
                            events: e
                        }
                    }, r.prototype.monitorUploadFailed = function () {
                        this.uselessCycleTaskNum++, this.uselessCycleTaskNum >= 5 && (window.clearInterval(this.intervalID), this.cycleTask(6e4), this.underWeakNet = !0)
                    }, r.prototype.doCustomCycleTask = function () {
                        this.uselessCycleTaskNum >= 5 && (window.clearInterval(this.intervalID), this.cycleTask(this.initDelayTime)), this.uselessCycleTaskNum = 0, this.underWeakNet = !1
                    }, r
                }(y)
            }, "object" == s(t) && void 0 !== e ? e.exports = a() : void 0 === (i = "function" == typeof (o = a) ? o.call(t, n, t, e) : o) || (e.exports = i)
        }).call(this, n(4))
    }, function (e, t, n) {
        var r = n(10), o = n(1), i = {};
        e.exports.transferToTaskMethod = function (e, t) {
            i[t] = e[t], e[t] = function (e, n) {
                e.SkipTask ? i[t].call(this, e, n) : this._addTask(t, e, n)
            }
        }, e.exports.init = function (e) {
            var t, n, a = [], s = {}, c = 0, u = 0, l = function (e) {
                var t = {
                    id: e.id,
                    Bucket: e.Bucket,
                    Region: e.Region,
                    Key: e.Key,
                    FilePath: e.FilePath,
                    state: e.state,
                    loaded: e.loaded,
                    size: e.size,
                    speed: e.speed,
                    percent: e.percent,
                    hashPercent: e.hashPercent,
                    error: e.error
                };
                return e.FilePath && (t.FilePath = e.FilePath), e._custom && (t._custom = e._custom), t
            }, d = (n = function () {
                t = 0, e.emit("task-list-update", {list: o.map(a, l)}), e.emit("list-update", {list: o.map(a, l)})
            }, function () {
                t || (t = setTimeout(n))
            }), p = function () {
                if (!(a.length <= e.options.UploadQueueSize)) {
                    for (var t = 0; t < u && t < a.length && a.length > e.options.UploadQueueSize;) {
                        var n = "waiting" === a[t].state || "checking" === a[t].state || "uploading" === a[t].state;
                        a[t] && n ? t++ : (s[a[t].id] && delete s[a[t].id], a.splice(t, 1), u--)
                    }
                    d()
                }
            }, f = function t() {
                if (!(c >= e.options.FileParallelLimit)) {
                    for (; a[u] && "waiting" !== a[u].state;) u++;
                    if (!(u >= a.length)) {
                        var n = a[u];
                        u++, c++, n.state = "checking", n.params.onTaskStart && n.params.onTaskStart(l(n)), !n.params.UploadData && (n.params.UploadData = {});
                        var r = o.formatParams(n.api, n.params);
                        i[n.api].call(e, r, (function (r, o) {
                            e._isRunningTask(n.id) && ("checking" !== n.state && "uploading" !== n.state || (n.state = r ? "error" : "success", r && (n.error = r), c--, d(), t(), n.callback && n.callback(r, o), "success" === n.state && (n.params && (delete n.params.UploadData, delete n.params.Body, delete n.params), delete n.callback)), p())
                        })), d(), setTimeout(t)
                    }
                }
            }, h = function (t, n) {
                var o = s[t];
                if (o) {
                    var i = o && "waiting" === o.state, a = o && ("checking" === o.state || "uploading" === o.state);
                    if ("canceled" === n && "canceled" !== o.state || "paused" === n && i || "paused" === n && a) {
                        if ("paused" === n && o.params.Body && "function" == typeof o.params.Body.pipe) return;
                        o.state = n, e.emit("inner-kill-task", {TaskId: t, toState: n});
                        try {
                            var u = o && o.params && o.params.UploadData.UploadId
                        } catch (e) {
                        }
                        "canceled" === n && u && r.removeUsing(u), d(), a && (c--, f()), "canceled" === n && (o.params && (delete o.params.UploadData, delete o.params.Body, delete o.params), delete o.callback)
                    }
                    p()
                }
            };
            e._addTasks = function (t) {
                o.each(t, (function (t) {
                    e._addTask(t.api, t.params, t.callback, !0)
                })), d()
            };
            e._addTask = function (t, n, r, i) {
                n = o.formatParams(t, n);
                var c = o.uuid();
                n.TaskId = c, n.onTaskReady && n.onTaskReady(c), n.TaskReady && (n.TaskReady(c), !1);
                var u = {
                    params: n,
                    callback: r,
                    api: t,
                    index: a.length,
                    id: c,
                    Bucket: n.Bucket,
                    Region: n.Region,
                    Key: n.Key,
                    FilePath: n.FilePath || "",
                    state: "waiting",
                    loaded: 0,
                    size: 0,
                    speed: 0,
                    percent: 0,
                    hashPercent: 0,
                    error: null,
                    _custom: n._custom
                }, l = n.onHashProgress;
                n.onHashProgress = function (t) {
                    e._isRunningTask(u.id) && (u.hashPercent = t.percent, l && l(t), d())
                };
                var h = n.onProgress;
                return n.onProgress = function (t) {
                    e._isRunningTask(u.id) && ("checking" === u.state && (u.state = "uploading"), u.loaded = t.loaded, u.speed = t.speed, u.percent = t.percent, h && h(t), d())
                }, o.getFileSize(t, n, (function (e, t) {
                    if (e) return r(o.error(e));
                    s[c] = u, a.push(u), u.size = t, !i && d(), f(), p()
                })), c
            }, e._isRunningTask = function (e) {
                var t = s[e];
                return !(!t || "checking" !== t.state && "uploading" !== t.state)
            }, e.getTaskList = function () {
                return o.map(a, l)
            }, e.cancelTask = function (e) {
                h(e, "canceled")
            }, e.pauseTask = function (e) {
                h(e, "paused")
            }, e.restartTask = function (e) {
                var t = s[e];
                !t || "paused" !== t.state && "error" !== t.state || (t.state = "waiting", d(), u = Math.min(u, t.index), f())
            }, e.isUploadRunning = function () {
                return c || u < a.length
            }
        }
    }, function (e, t, n) {
        var r = n(27), o = n(1);

        function i(e) {
            var t = {GrantFullControl: [], GrantWrite: [], GrantRead: [], GrantReadAcp: [], GrantWriteAcp: [], ACL: ""},
                n = {
                    FULL_CONTROL: "GrantFullControl",
                    WRITE: "GrantWrite",
                    READ: "GrantRead",
                    READ_ACP: "GrantReadAcp",
                    WRITE_ACP: "GrantWriteAcp"
                }, r = (e && e.AccessControlList || {}).Grant;
            r && (r = o.isArray(r) ? r : [r]);
            var i = {READ: 0, WRITE: 0, FULL_CONTROL: 0};
            return r && r.length && o.each(r, (function (r) {
                "qcs::cam::anyone:anyone" === r.Grantee.ID || "http://cam.qcloud.com/groups/global/AllUsers" === r.Grantee.URI ? i[r.Permission] = 1 : r.Grantee.ID !== e.Owner.ID && t[n[r.Permission]].push('id="' + r.Grantee.ID + '"')
            })), i.FULL_CONTROL || i.WRITE && i.READ ? t.ACL = "public-read-write" : i.READ ? t.ACL = "public-read" : t.ACL = "private", o.each(n, (function (e) {
                t[e] = a(t[e].join(","))
            })), t
        }

        function a(e) {
            var t, n, r = e.split(","), o = {};
            for (t = 0; t < r.length;) o[n = r[t].trim()] ? r.splice(t, 1) : (o[n] = !0, r[t] = n, t++);
            return r.join(",")
        }

        function s(e) {
            var t = e.region || "", n = e.bucket || "", r = n.substr(0, n.lastIndexOf("-")),
                i = n.substr(n.lastIndexOf("-") + 1), a = e.domain, s = e.object;
            "function" == typeof a && (a = a({Bucket: n, Region: t}));
            var c = e.protocol || (o.isBrowser && "http:" === location.protocol ? "http:" : "https:");
            a || (a = ["cn-south", "cn-south-2", "cn-north", "cn-east", "cn-southwest", "sg"].indexOf(t) > -1 ? "{Region}.myqcloud.com" : "cos.{Region}.myqcloud.com", e.ForcePathStyle || (a = "{Bucket}." + a)), a = (a = a.replace(/\{\{AppId\}\}/gi, i).replace(/\{\{Bucket\}\}/gi, r).replace(/\{\{Region\}\}/gi, t).replace(/\{\{.*?\}\}/gi, "")).replace(/\{AppId\}/gi, i).replace(/\{BucketName\}/gi, r).replace(/\{Bucket\}/gi, n).replace(/\{Region\}/gi, t).replace(/\{.*?\}/gi, ""), /^[a-zA-Z]+:\/\//.test(a) || (a = c + "//" + a), "/" === a.slice(-1) && (a = a.slice(0, -1));
            var u = a;
            return e.ForcePathStyle && (u += "/" + n), u += "/", s && (u += o.camSafeUrlEncode(s).replace(/%2F/g, "/")), e.isLocation && (u = u.replace(/^https?:\/\//, "")), u
        }

        var c = function (e) {
            if (!e.Bucket || !e.Region) return "";
            var t = void 0 === e.UseAccelerate ? this.options.UseAccelerate : e.UseAccelerate, n = (e.Url || s({
                ForcePathStyle: this.options.ForcePathStyle,
                protocol: this.options.Protocol,
                domain: this.options.Domain,
                bucket: e.Bucket,
                region: t ? "accelerate" : e.Region
            })).replace(/^https?:\/\/([^/]+)(\/.*)?$/, "$1");
            return new RegExp("^([a-z\\d-]+-\\d+\\.)?(cos|cosv6|ci|pic)\\.([a-z\\d-]+)\\.myqcloud\\.com$").test(n) ? n : ""
        };

        function u(e, t) {
            var n = o.clone(e.Headers), r = "";
            o.each(n, (function (e, t) {
                ("" === e || ["content-type", "cache-control", "expires"].indexOf(t.toLowerCase()) > -1) && delete n[t], "host" === t.toLowerCase() && (r = e)
            }));
            var i = !1 !== e.ForceSignHost;
            !r && e.SignHost && i && (n.Host = e.SignHost);
            var a = !1, s = function (e, n) {
                a || (a = !0, n && n.XCosSecurityToken && !n.SecurityToken && ((n = o.clone(n)).SecurityToken = n.XCosSecurityToken, delete n.XCosSecurityToken), t && t(e, n))
            }, c = this, u = e.Bucket || "", l = e.Region || "", d = e.Key || "";
            c.options.ForcePathStyle && u && (d = u + "/" + d);
            var p = "/" + d, f = {}, h = e.Scope;
            if (!h) {
                var m = e.Action || "", g = e.ResourceKey || e.Key || "";
                h = e.Scope || [{action: m, bucket: u, region: l, prefix: g}]
            }
            var y = o.md5(JSON.stringify(h));
            c._StsCache = c._StsCache || [], function () {
                var e, t;
                for (e = c._StsCache.length - 1; e >= 0; e--) {
                    t = c._StsCache[e];
                    var n = Math.round(o.getSkewTime(c.options.SystemClockOffset) / 1e3) + 30;
                    if (t.StartTime && n < t.StartTime || n >= t.ExpiredTime) c._StsCache.splice(e, 1); else if (!t.ScopeLimit || t.ScopeLimit && t.ScopeKey === y) {
                        f = t;
                        break
                    }
                }
            }();
            var v, C = function () {
                var t = "";
                f.StartTime && e.Expires ? t = f.StartTime + ";" + (f.StartTime + 1 * e.Expires) : f.StartTime && f.ExpiredTime && (t = f.StartTime + ";" + f.ExpiredTime);
                var r = {
                    Authorization: o.getAuth({
                        SecretId: f.TmpSecretId,
                        SecretKey: f.TmpSecretKey,
                        Method: e.Method,
                        Pathname: p,
                        Query: e.Query,
                        Headers: n,
                        Expires: e.Expires,
                        UseRawKey: c.options.UseRawKey,
                        SystemClockOffset: c.options.SystemClockOffset,
                        KeyTime: t,
                        ForceSignHost: i
                    }),
                    SecurityToken: f.SecurityToken || f.XCosSecurityToken || "",
                    Token: f.Token || "",
                    ClientIP: f.ClientIP || "",
                    ClientUA: f.ClientUA || ""
                };
                s(null, r)
            }, k = function (e) {
                if (e.Authorization) {
                    var t = !1, n = e.Authorization;
                    if (n) if (n.indexOf(" ") > -1) t = !1; else if (n.indexOf("q-sign-algorithm=") > -1 && n.indexOf("q-ak=") > -1 && n.indexOf("q-sign-time=") > -1 && n.indexOf("q-key-time=") > -1 && n.indexOf("q-url-param-list=") > -1) t = !0; else try {
                        (n = atob(n)).indexOf("a=") > -1 && n.indexOf("k=") > -1 && n.indexOf("t=") > -1 && n.indexOf("r=") > -1 && n.indexOf("b=") > -1 && (t = !0)
                    } catch (e) {
                    }
                    if (!t) return o.error(new Error("getAuthorization callback params format error"))
                } else {
                    if (!e.TmpSecretId) return o.error(new Error('getAuthorization callback params missing "TmpSecretId"'));
                    if (!e.TmpSecretKey) return o.error(new Error('getAuthorization callback params missing "TmpSecretKey"'));
                    if (!e.SecurityToken && !e.XCosSecurityToken) return o.error(new Error('getAuthorization callback params missing "SecurityToken"'));
                    if (!e.ExpiredTime) return o.error(new Error('getAuthorization callback params missing "ExpiredTime"'));
                    if (e.ExpiredTime && 10 !== e.ExpiredTime.toString().length) return o.error(new Error('getAuthorization callback params "ExpiredTime" should be 10 digits'));
                    if (e.StartTime && 10 !== e.StartTime.toString().length) return o.error(new Error('getAuthorization callback params "StartTime" should be 10 StartTime'))
                }
                return !1
            };
            if (f.ExpiredTime && f.ExpiredTime - o.getSkewTime(c.options.SystemClockOffset) / 1e3 > 60) C(); else if (c.options.getAuthorization) c.options.getAuthorization.call(c, {
                Bucket: u,
                Region: l,
                Method: e.Method,
                Key: d,
                Pathname: p,
                Query: e.Query,
                Headers: n,
                Scope: h,
                SystemClockOffset: c.options.SystemClockOffset,
                ForceSignHost: i
            }, (function (e) {
                "string" == typeof e && (e = {Authorization: e});
                var t = k(e);
                if (t) return s(t);
                e.Authorization ? s(null, e) : ((f = e || {}).Scope = h, f.ScopeKey = y, c._StsCache.push(f), C())
            })); else {
                if (!c.options.getSTS) return v = {
                    Authorization: o.getAuth({
                        SecretId: e.SecretId || c.options.SecretId,
                        SecretKey: e.SecretKey || c.options.SecretKey,
                        Method: e.Method,
                        Pathname: p,
                        Query: e.Query,
                        Headers: n,
                        Expires: e.Expires,
                        UseRawKey: c.options.UseRawKey,
                        SystemClockOffset: c.options.SystemClockOffset,
                        ForceSignHost: i
                    }), SecurityToken: c.options.SecurityToken || c.options.XCosSecurityToken
                }, s(null, v), v;
                c.options.getSTS.call(c, {Bucket: u, Region: l}, (function (e) {
                    (f = e || {}).Scope = h, f.ScopeKey = y, f.TmpSecretId || (f.TmpSecretId = f.SecretId), f.TmpSecretKey || (f.TmpSecretKey = f.SecretKey);
                    var t = k(f);
                    if (t) return s(t);
                    c._StsCache.push(f), C()
                }))
            }
            return ""
        }

        function l(e) {
            var t = !1, n = !1, r = e.headers && (e.headers.date || e.headers.Date) || e.error && e.error.ServerTime;
            try {
                var i = e.error.Code, a = e.error.Message;
                ("RequestTimeTooSkewed" === i || "AccessDenied" === i && "Request has expired" === a) && (n = !0)
            } catch (e) {
            }
            if (e) if (n && r) {
                var s = Date.parse(r);
                this.options.CorrectClockSkew && Math.abs(o.getSkewTime(this.options.SystemClockOffset) - s) >= 3e4 && (this.options.SystemClockOffset = s - Date.now(), t = !0)
            } else 5 === Math.floor(e.statusCode / 100) && (t = !0);
            return t
        }

        function d(e, t) {
            var n = this;
            !e.headers && (e.headers = {}), !e.qs && (e.qs = {}), e.VersionId && (e.qs.versionId = e.VersionId), e.qs = o.clearKey(e.qs), e.headers && (e.headers = o.clearKey(e.headers)), e.qs && (e.qs = o.clearKey(e.qs));
            var r = o.clone(e.qs);
            e.action && (r[e.action] = "");
            var i = e.url || e.Url, a = e.SignHost || c.call(this, {Bucket: e.Bucket, Region: e.Region, Url: i}),
                s = e.tracker;
            !function o(i) {
                var c = n.options.SystemClockOffset;
                s && s.setParams({
                    signStartTime: (new Date).getTime(),
                    retryTimes: i - 1
                }), u.call(n, {
                    Bucket: e.Bucket || "",
                    Region: e.Region || "",
                    Method: e.method,
                    Key: e.Key,
                    Query: r,
                    Headers: e.headers,
                    SignHost: a,
                    Action: e.Action,
                    ResourceKey: e.ResourceKey,
                    Scope: e.Scope,
                    ForceSignHost: n.options.ForceSignHost
                }, (function (r, a) {
                    r ? t(r) : (s && s.setParams({
                        signEndTime: (new Date).getTime(),
                        httpStartTime: (new Date).getTime()
                    }), e.AuthData = a, p.call(n, e, (function (r, a) {
                        s && s.setParams({httpEndTime: (new Date).getTime()}), r && i < 2 && (c !== n.options.SystemClockOffset || l.call(n, r)) ? (e.headers && (delete e.headers.Authorization, delete e.headers.token, delete e.headers.clientIP, delete e.headers.clientUA, e.headers["x-cos-security-token"] && delete e.headers["x-cos-security-token"], e.headers["x-ci-security-token"] && delete e.headers["x-ci-security-token"]), o(i + 1)) : t(r, a)
                    })))
                }))
            }(1)
        }

        function p(e, t) {
            var n = this, i = e.TaskId;
            if (!i || n._isRunningTask(i)) {
                var a = e.Bucket, c = e.Region, u = e.Key, l = e.method || "GET", d = e.Url || e.url, p = e.body,
                    f = e.rawBody;
                n.options.UseAccelerate && (c = "accelerate"), d = d || s({
                    ForcePathStyle: n.options.ForcePathStyle,
                    protocol: n.options.Protocol,
                    domain: n.options.Domain,
                    bucket: a,
                    region: c,
                    object: u
                }), e.action && (d = d + "?" + e.action), e.qsStr && (d = d.indexOf("?") > -1 ? d + "&" + e.qsStr : d + "?" + e.qsStr);
                var h = {method: l, url: d, headers: e.headers, qs: e.qs, body: p}, m = "x-cos-security-token";
                if (o.isCIHost(d) && (m = "x-ci-security-token"), h.headers.Authorization = e.AuthData.Authorization, e.AuthData.Token && (h.headers.token = e.AuthData.Token), e.AuthData.ClientIP && (h.headers.clientIP = e.AuthData.ClientIP), e.AuthData.ClientUA && (h.headers.clientUA = e.AuthData.ClientUA), e.AuthData.SecurityToken && (h.headers[m] = e.AuthData.SecurityToken), h.headers && (h.headers = o.clearKey(h.headers)), h = o.clearKey(h), e.onProgress && "function" == typeof e.onProgress) {
                    var g = p && (p.size || p.length) || 0;
                    h.onProgress = function (t) {
                        if (!i || n._isRunningTask(i)) {
                            var r = t ? t.loaded : 0;
                            e.onProgress({loaded: r, total: g})
                        }
                    }
                }
                e.onDownloadProgress && (h.onDownloadProgress = e.onDownloadProgress), e.DataType && (h.dataType = e.DataType), this.options.Timeout && (h.timeout = this.options.Timeout), n.options.ForcePathStyle && (h.pathStyle = n.options.ForcePathStyle), n.emit("before-send", h);
                var y = h.url.includes("accelerate."), v = h.qs ? Object.keys(h.qs).map((function (e) {
                    return "".concat(e, "=").concat(h.qs[e])
                })).join("&") : "", C = v ? h.url + "?" + v : h.url;
                e.tracker && e.tracker.setParams({
                    reqUrl: C,
                    accelerate: y ? "Y" : "N"
                }), e.tracker && e.tracker.parent && e.tracker.parent.setParams({reqUrl: C, accelerate: y ? "Y" : "N"});
                var k = (n.options.Request || r)(h, (function (e) {
                    if ("abort" !== e.error) {
                        var r = {
                            options: h,
                            error: c,
                            statusCode: s && s.statusCode || 0,
                            headers: s && s.headers || {},
                            body: u
                        };
                        n.emit("after-receive", r), c = r.error, u = r.body, s = {
                            statusCode: r.statusCode,
                            headers: r.headers
                        }, n.emit("after-receive", e);
                        var a, s = {statusCode: e.statusCode, statusMessage: e.statusMessage, headers: e.headers},
                            c = e.error, u = e.body, l = function (e, r) {
                                if (i && n.off("inner-kill-task", S), !a) {
                                    a = !0;
                                    var c = {};
                                    s && s.statusCode && (c.statusCode = s.statusCode), s && s.headers && (c.headers = s.headers), e ? (e = o.extend(e || {}, c), t(e, null)) : (r = o.extend(r || {}, c), t(null, r)), k = null
                                }
                            };
                        if (c) return l(o.error(c));
                        var d, p = s.statusCode, m = 2 === Math.floor(p / 100);
                        if (f && m) return l(null, {body: u});
                        try {
                            d = u && u.indexOf("<") > -1 && u.indexOf(">") > -1 && o.xml2json(u) || {}
                        } catch (e) {
                            d = {}
                        }
                        var g = d && d.Error;
                        m ? l(null, d) : g ? l(o.error(new Error(g.Message), {
                            code: g.Code,
                            error: g
                        })) : p ? l(o.error(new Error(s.statusMessage), {code: "" + p})) : p && l(o.error(new Error("statusCode error")))
                    }
                })), S = function e(t) {
                    t.TaskId === i && (k && k.abort && k.abort(), n.off("inner-kill-task", e))
                };
                i && n.on("inner-kill-task", S)
            }
        }

        var f = {
            getService: function (e, t) {
                "function" == typeof e && (t = e, e = {});
                var n = this.options.Protocol || (o.isBrowser && "http:" === location.protocol ? "http:" : "https:"),
                    r = this.options.ServiceDomain, i = e.AppId || this.options.appId, a = e.Region;
                r ? (r = r.replace(/\{\{AppId\}\}/gi, i || "").replace(/\{\{Region\}\}/gi, a || "").replace(/\{\{.*?\}\}/gi, ""), /^[a-zA-Z]+:\/\//.test(r) || (r = n + "//" + r), "/" === r.slice(-1) && (r = r.slice(0, -1))) : r = a ? n + "//cos." + a + ".myqcloud.com" : n + "//service.cos.myqcloud.com";
                var s = "", c = a ? "cos." + a + ".myqcloud.com" : "service.cos.myqcloud.com";
                c === r.replace(/^https?:\/\/([^/]+)(\/.*)?$/, "$1") && (s = c), d.call(this, {
                    Action: "name/cos:GetService",
                    url: r,
                    method: "GET",
                    headers: e.Headers,
                    SignHost: s
                }, (function (e, n) {
                    if (e) return t(e);
                    var r = n && n.ListAllMyBucketsResult && n.ListAllMyBucketsResult.Buckets && n.ListAllMyBucketsResult.Buckets.Bucket || [];
                    r = o.isArray(r) ? r : [r];
                    var i = n && n.ListAllMyBucketsResult && n.ListAllMyBucketsResult.Owner || {};
                    t(null, {Buckets: r, Owner: i, statusCode: n.statusCode, headers: n.headers})
                }))
            }, putBucket: function (e, t) {
                var n = this, r = "";
                if (e.BucketAZConfig) {
                    var i = {BucketAZConfig: e.BucketAZConfig};
                    r = o.json2xml({CreateBucketConfiguration: i})
                }
                d.call(this, {
                    Action: "name/cos:PutBucket",
                    method: "PUT",
                    Bucket: e.Bucket,
                    Region: e.Region,
                    headers: e.Headers,
                    body: r
                }, (function (r, o) {
                    if (r) return t(r);
                    var i = s({
                        protocol: n.options.Protocol,
                        domain: n.options.Domain,
                        bucket: e.Bucket,
                        region: e.Region,
                        isLocation: !0
                    });
                    t(null, {Location: i, statusCode: o.statusCode, headers: o.headers})
                }))
            }, headBucket: function (e, t) {
                d.call(this, {
                    Action: "name/cos:HeadBucket",
                    Bucket: e.Bucket,
                    Region: e.Region,
                    headers: e.Headers,
                    method: "HEAD"
                }, t)
            }, getBucket: function (e, t) {
                var n = {};
                n.prefix = e.Prefix || "", n.delimiter = e.Delimiter, n.marker = e.Marker, n["max-keys"] = e.MaxKeys, n["encoding-type"] = e.EncodingType, d.call(this, {
                    Action: "name/cos:GetBucket",
                    ResourceKey: n.prefix,
                    method: "GET",
                    Bucket: e.Bucket,
                    Region: e.Region,
                    headers: e.Headers,
                    qs: n
                }, (function (e, n) {
                    if (e) return t(e);
                    var r = n.ListBucketResult || {}, i = r.Contents || [], a = r.CommonPrefixes || [];
                    i = o.isArray(i) ? i : [i], a = o.isArray(a) ? a : [a];
                    var s = o.clone(r);
                    o.extend(s, {
                        Contents: i,
                        CommonPrefixes: a,
                        statusCode: n.statusCode,
                        headers: n.headers
                    }), t(null, s)
                }))
            }, deleteBucket: function (e, t) {
                d.call(this, {
                    Action: "name/cos:DeleteBucket",
                    Bucket: e.Bucket,
                    Region: e.Region,
                    headers: e.Headers,
                    method: "DELETE"
                }, (function (e, n) {
                    return e && 204 === e.statusCode ? t(null, {statusCode: e.statusCode}) : e ? t(e) : void t(null, {
                        statusCode: n.statusCode,
                        headers: n.headers
                    })
                }))
            }, putBucketAcl: function (e, t) {
                var n = e.Headers, r = "";
                if (e.AccessControlPolicy) {
                    var i = o.clone(e.AccessControlPolicy || {}), s = i.Grants || i.Grant;
                    s = o.isArray(s) ? s : [s], delete i.Grant, delete i.Grants, i.AccessControlList = {Grant: s}, r = o.json2xml({AccessControlPolicy: i}), n["Content-Type"] = "application/xml", n["Content-MD5"] = o.binaryBase64(o.md5(r))
                }
                o.each(n, (function (e, t) {
                    0 === t.indexOf("x-cos-grant-") && (n[t] = a(n[t]))
                })), d.call(this, {
                    Action: "name/cos:PutBucketACL",
                    method: "PUT",
                    Bucket: e.Bucket,
                    Region: e.Region,
                    headers: n,
                    action: "acl",
                    body: r
                }, (function (e, n) {
                    if (e) return t(e);
                    t(null, {statusCode: n.statusCode, headers: n.headers})
                }))
            }, getBucketAcl: function (e, t) {
                d.call(this, {
                    Action: "name/cos:GetBucketACL",
                    method: "GET",
                    Bucket: e.Bucket,
                    Region: e.Region,
                    headers: e.Headers,
                    action: "acl"
                }, (function (e, n) {
                    if (e) return t(e);
                    var r = n.AccessControlPolicy || {}, a = r.Owner || {}, s = r.AccessControlList.Grant || [];
                    s = o.isArray(s) ? s : [s];
                    var c = i(r);
                    n.headers && n.headers["x-cos-acl"] && (c.ACL = n.headers["x-cos-acl"]), c = o.extend(c, {
                        Owner: a,
                        Grants: s,
                        statusCode: n.statusCode,
                        headers: n.headers
                    }), t(null, c)
                }))
            }, putBucketCors: function (e, t) {
                var n = (e.CORSConfiguration || {}).CORSRules || e.CORSRules || [];
                n = o.clone(o.isArray(n) ? n : [n]), o.each(n, (function (e) {
                    o.each(["AllowedOrigin", "AllowedHeader", "AllowedMethod", "ExposeHeader"], (function (t) {
                        var n = t + "s", r = e[n] || e[t] || [];
                        delete e[n], e[t] = o.isArray(r) ? r : [r]
                    }))
                }));
                var r = {CORSRule: n};
                e.ResponseVary && (r.ResponseVary = e.ResponseVary);
                var i = o.json2xml({CORSConfiguration: r}), a = e.Headers;
                a["Content-Type"] = "application/xml", a["Content-MD5"] = o.binaryBase64(o.md5(i)), d.call(this, {
                    Action: "name/cos:PutBucketCORS",
                    method: "PUT",
                    Bucket: e.Bucket,
                    Region: e.Region,
                    body: i,
                    action: "cors",
                    headers: a
                }, (function (e, n) {
                    if (e) return t(e);
                    t(null, {statusCode: n.statusCode, headers: n.headers})
                }))
            }, getBucketCors: function (e, t) {
                d.call(this, {
                    Action: "name/cos:GetBucketCORS",
                    method: "GET",
                    Bucket: e.Bucket,
                    Region: e.Region,
                    headers: e.Headers,
                    action: "cors"
                }, (function (e, n) {
                    if (e) if (404 === e.statusCode && e.error && "NoSuchCORSConfiguration" === e.error.Code) {
                        var r = {CORSRules: [], statusCode: e.statusCode};
                        e.headers && (r.headers = e.headers), t(null, r)
                    } else t(e); else {
                        var i = n.CORSConfiguration || {}, a = i.CORSRules || i.CORSRule || [];
                        a = o.clone(o.isArray(a) ? a : [a]);
                        var s = i.ResponseVary;
                        o.each(a, (function (e) {
                            o.each(["AllowedOrigin", "AllowedHeader", "AllowedMethod", "ExposeHeader"], (function (t) {
                                var n = t + "s", r = e[n] || e[t] || [];
                                delete e[t], e[n] = o.isArray(r) ? r : [r]
                            }))
                        })), t(null, {CORSRules: a, ResponseVary: s, statusCode: n.statusCode, headers: n.headers})
                    }
                }))
            }, deleteBucketCors: function (e, t) {
                d.call(this, {
                    Action: "name/cos:DeleteBucketCORS",
                    method: "DELETE",
                    Bucket: e.Bucket,
                    Region: e.Region,
                    headers: e.Headers,
                    action: "cors"
                }, (function (e, n) {
                    return e && 204 === e.statusCode ? t(null, {statusCode: e.statusCode}) : e ? t(e) : void t(null, {
                        statusCode: n.statusCode || e.statusCode,
                        headers: n.headers
                    })
                }))
            }, getBucketLocation: function (e, t) {
                d.call(this, {
                    Action: "name/cos:GetBucketLocation",
                    method: "GET",
                    Bucket: e.Bucket,
                    Region: e.Region,
                    headers: e.Headers,
                    action: "location"
                }, t)
            }, getBucketPolicy: function (e, t) {
                d.call(this, {
                    Action: "name/cos:GetBucketPolicy",
                    method: "GET",
                    Bucket: e.Bucket,
                    Region: e.Region,
                    headers: e.Headers,
                    action: "policy",
                    rawBody: !0
                }, (function (e, n) {
                    if (e) return e.statusCode && 403 === e.statusCode ? t(o.error(e, {ErrorStatus: "Access Denied"})) : e.statusCode && 405 === e.statusCode ? t(o.error(e, {ErrorStatus: "Method Not Allowed"})) : e.statusCode && 404 === e.statusCode ? t(o.error(e, {ErrorStatus: "Policy Not Found"})) : t(e);
                    var r = {};
                    try {
                        r = JSON.parse(n.body)
                    } catch (e) {
                    }
                    t(null, {Policy: r, statusCode: n.statusCode, headers: n.headers})
                }))
            }, putBucketPolicy: function (e, t) {
                var n = e.Policy;
                try {
                    "string" == typeof n && (n = JSON.parse(n))
                } catch (e) {
                }
                if (!n || "string" == typeof n) return t(o.error(new Error("Policy format error")));
                var r = JSON.stringify(n);
                n.version || (n.version = "2.0");
                var i = e.Headers;
                i["Content-Type"] = "application/json", i["Content-MD5"] = o.binaryBase64(o.md5(r)), d.call(this, {
                    Action: "name/cos:PutBucketPolicy",
                    method: "PUT",
                    Bucket: e.Bucket,
                    Region: e.Region,
                    action: "policy",
                    body: r,
                    headers: i
                }, (function (e, n) {
                    return e && 204 === e.statusCode ? t(null, {statusCode: e.statusCode}) : e ? t(e) : void t(null, {
                        statusCode: n.statusCode,
                        headers: n.headers
                    })
                }))
            }, deleteBucketPolicy: function (e, t) {
                d.call(this, {
                    Action: "name/cos:DeleteBucketPolicy",
                    method: "DELETE",
                    Bucket: e.Bucket,
                    Region: e.Region,
                    headers: e.Headers,
                    action: "policy"
                }, (function (e, n) {
                    return e && 204 === e.statusCode ? t(null, {statusCode: e.statusCode}) : e ? t(e) : void t(null, {
                        statusCode: n.statusCode || e.statusCode,
                        headers: n.headers
                    })
                }))
            }, putBucketTagging: function (e, t) {
                var n = e.Tagging || {}, r = n.TagSet || n.Tags || e.Tags || [];
                r = o.clone(o.isArray(r) ? r : [r]);
                var i = o.json2xml({Tagging: {TagSet: {Tag: r}}}), a = e.Headers;
                a["Content-Type"] = "application/xml", a["Content-MD5"] = o.binaryBase64(o.md5(i)), d.call(this, {
                    Action: "name/cos:PutBucketTagging",
                    method: "PUT",
                    Bucket: e.Bucket,
                    Region: e.Region,
                    body: i,
                    action: "tagging",
                    headers: a
                }, (function (e, n) {
                    return e && 204 === e.statusCode ? t(null, {statusCode: e.statusCode}) : e ? t(e) : void t(null, {
                        statusCode: n.statusCode,
                        headers: n.headers
                    })
                }))
            }, getBucketTagging: function (e, t) {
                d.call(this, {
                    Action: "name/cos:GetBucketTagging",
                    method: "GET",
                    Bucket: e.Bucket,
                    Region: e.Region,
                    headers: e.Headers,
                    action: "tagging"
                }, (function (e, n) {
                    if (e) if (404 !== e.statusCode || !e.error || "Not Found" !== e.error && "NoSuchTagSet" !== e.error.Code) t(e); else {
                        var r = {Tags: [], statusCode: e.statusCode};
                        e.headers && (r.headers = e.headers), t(null, r)
                    } else {
                        var i = [];
                        try {
                            i = n.Tagging.TagSet.Tag || []
                        } catch (e) {
                        }
                        i = o.clone(o.isArray(i) ? i : [i]), t(null, {
                            Tags: i,
                            statusCode: n.statusCode,
                            headers: n.headers
                        })
                    }
                }))
            }, deleteBucketTagging: function (e, t) {
                d.call(this, {
                    Action: "name/cos:DeleteBucketTagging",
                    method: "DELETE",
                    Bucket: e.Bucket,
                    Region: e.Region,
                    headers: e.Headers,
                    action: "tagging"
                }, (function (e, n) {
                    return e && 204 === e.statusCode ? t(null, {statusCode: e.statusCode}) : e ? t(e) : void t(null, {
                        statusCode: n.statusCode,
                        headers: n.headers
                    })
                }))
            }, putBucketLifecycle: function (e, t) {
                var n = (e.LifecycleConfiguration || {}).Rules || e.Rules || [];
                n = o.clone(n);
                var r = o.json2xml({LifecycleConfiguration: {Rule: n}}), i = e.Headers;
                i["Content-Type"] = "application/xml", i["Content-MD5"] = o.binaryBase64(o.md5(r)), d.call(this, {
                    Action: "name/cos:PutBucketLifecycle",
                    method: "PUT",
                    Bucket: e.Bucket,
                    Region: e.Region,
                    body: r,
                    action: "lifecycle",
                    headers: i
                }, (function (e, n) {
                    return e && 204 === e.statusCode ? t(null, {statusCode: e.statusCode}) : e ? t(e) : void t(null, {
                        statusCode: n.statusCode,
                        headers: n.headers
                    })
                }))
            }, getBucketLifecycle: function (e, t) {
                d.call(this, {
                    Action: "name/cos:GetBucketLifecycle",
                    method: "GET",
                    Bucket: e.Bucket,
                    Region: e.Region,
                    headers: e.Headers,
                    action: "lifecycle"
                }, (function (e, n) {
                    if (e) if (404 === e.statusCode && e.error && "NoSuchLifecycleConfiguration" === e.error.Code) {
                        var r = {Rules: [], statusCode: e.statusCode};
                        e.headers && (r.headers = e.headers), t(null, r)
                    } else t(e); else {
                        var i = [];
                        try {
                            i = n.LifecycleConfiguration.Rule || []
                        } catch (e) {
                        }
                        i = o.clone(o.isArray(i) ? i : [i]), t(null, {
                            Rules: i,
                            statusCode: n.statusCode,
                            headers: n.headers
                        })
                    }
                }))
            }, deleteBucketLifecycle: function (e, t) {
                d.call(this, {
                    Action: "name/cos:DeleteBucketLifecycle",
                    method: "DELETE",
                    Bucket: e.Bucket,
                    Region: e.Region,
                    headers: e.Headers,
                    action: "lifecycle"
                }, (function (e, n) {
                    return e && 204 === e.statusCode ? t(null, {statusCode: e.statusCode}) : e ? t(e) : void t(null, {
                        statusCode: n.statusCode,
                        headers: n.headers
                    })
                }))
            }, putBucketVersioning: function (e, t) {
                if (e.VersioningConfiguration) {
                    var n = e.VersioningConfiguration || {}, r = o.json2xml({VersioningConfiguration: n}),
                        i = e.Headers;
                    i["Content-Type"] = "application/xml", i["Content-MD5"] = o.binaryBase64(o.md5(r)), d.call(this, {
                        Action: "name/cos:PutBucketVersioning",
                        method: "PUT",
                        Bucket: e.Bucket,
                        Region: e.Region,
                        body: r,
                        action: "versioning",
                        headers: i
                    }, (function (e, n) {
                        return e && 204 === e.statusCode ? t(null, {statusCode: e.statusCode}) : e ? t(e) : void t(null, {
                            statusCode: n.statusCode,
                            headers: n.headers
                        })
                    }))
                } else t(o.error(new Error("missing param VersioningConfiguration")))
            }, getBucketVersioning: function (e, t) {
                d.call(this, {
                    Action: "name/cos:GetBucketVersioning",
                    method: "GET",
                    Bucket: e.Bucket,
                    Region: e.Region,
                    headers: e.Headers,
                    action: "versioning"
                }, (function (e, n) {
                    e || !n.VersioningConfiguration && (n.VersioningConfiguration = {}), t(e, n)
                }))
            }, putBucketReplication: function (e, t) {
                var n = o.clone(e.ReplicationConfiguration), r = o.json2xml({ReplicationConfiguration: n});
                r = (r = r.replace(/<(\/?)Rules>/gi, "<$1Rule>")).replace(/<(\/?)Tags>/gi, "<$1Tag>");
                var i = e.Headers;
                i["Content-Type"] = "application/xml", i["Content-MD5"] = o.binaryBase64(o.md5(r)), d.call(this, {
                    Action: "name/cos:PutBucketReplication",
                    method: "PUT",
                    Bucket: e.Bucket,
                    Region: e.Region,
                    body: r,
                    action: "replication",
                    headers: i
                }, (function (e, n) {
                    return e && 204 === e.statusCode ? t(null, {statusCode: e.statusCode}) : e ? t(e) : void t(null, {
                        statusCode: n.statusCode,
                        headers: n.headers
                    })
                }))
            }, getBucketReplication: function (e, t) {
                d.call(this, {
                    Action: "name/cos:GetBucketReplication",
                    method: "GET",
                    Bucket: e.Bucket,
                    Region: e.Region,
                    headers: e.Headers,
                    action: "replication"
                }, (function (e, n) {
                    if (e) if (404 !== e.statusCode || !e.error || "Not Found" !== e.error && "ReplicationConfigurationnotFoundError" !== e.error.Code) t(e); else {
                        var r = {ReplicationConfiguration: {Rules: []}, statusCode: e.statusCode};
                        e.headers && (r.headers = e.headers), t(null, r)
                    } else !n.ReplicationConfiguration && (n.ReplicationConfiguration = {}), n.ReplicationConfiguration.Rule && (n.ReplicationConfiguration.Rules = o.makeArray(n.ReplicationConfiguration.Rule), delete n.ReplicationConfiguration.Rule), t(e, n)
                }))
            }, deleteBucketReplication: function (e, t) {
                d.call(this, {
                    Action: "name/cos:DeleteBucketReplication",
                    method: "DELETE",
                    Bucket: e.Bucket,
                    Region: e.Region,
                    headers: e.Headers,
                    action: "replication"
                }, (function (e, n) {
                    return e && 204 === e.statusCode ? t(null, {statusCode: e.statusCode}) : e ? t(e) : void t(null, {
                        statusCode: n.statusCode,
                        headers: n.headers
                    })
                }))
            }, putBucketWebsite: function (e, t) {
                if (e.WebsiteConfiguration) {
                    var n = o.clone(e.WebsiteConfiguration || {}), r = n.RoutingRules || n.RoutingRule || [];
                    r = o.isArray(r) ? r : [r], delete n.RoutingRule, delete n.RoutingRules, r.length && (n.RoutingRules = {RoutingRule: r});
                    var i = o.json2xml({WebsiteConfiguration: n}), a = e.Headers;
                    a["Content-Type"] = "application/xml", a["Content-MD5"] = o.binaryBase64(o.md5(i)), d.call(this, {
                        Action: "name/cos:PutBucketWebsite",
                        method: "PUT",
                        Bucket: e.Bucket,
                        Region: e.Region,
                        body: i,
                        action: "website",
                        headers: a
                    }, (function (e, n) {
                        return e && 204 === e.statusCode ? t(null, {statusCode: e.statusCode}) : e ? t(e) : void t(null, {
                            statusCode: n.statusCode,
                            headers: n.headers
                        })
                    }))
                } else t(o.error(new Error("missing param WebsiteConfiguration")))
            }, getBucketWebsite: function (e, t) {
                d.call(this, {
                    Action: "name/cos:GetBucketWebsite",
                    method: "GET",
                    Bucket: e.Bucket,
                    Region: e.Region,
                    Key: e.Key,
                    headers: e.Headers,
                    action: "website"
                }, (function (e, n) {
                    if (e) if (404 === e.statusCode && "NoSuchWebsiteConfiguration" === e.error.Code) {
                        var r = {WebsiteConfiguration: {}, statusCode: e.statusCode};
                        e.headers && (r.headers = e.headers), t(null, r)
                    } else t(e); else {
                        var i = n.WebsiteConfiguration || {};
                        if (i.RoutingRules) {
                            var a = o.clone(i.RoutingRules.RoutingRule || []);
                            a = o.makeArray(a), i.RoutingRules = a
                        }
                        t(null, {WebsiteConfiguration: i, statusCode: n.statusCode, headers: n.headers})
                    }
                }))
            }, deleteBucketWebsite: function (e, t) {
                d.call(this, {
                    Action: "name/cos:DeleteBucketWebsite",
                    method: "DELETE",
                    Bucket: e.Bucket,
                    Region: e.Region,
                    headers: e.Headers,
                    action: "website"
                }, (function (e, n) {
                    return e && 204 === e.statusCode ? t(null, {statusCode: e.statusCode}) : e ? t(e) : void t(null, {
                        statusCode: n.statusCode,
                        headers: n.headers
                    })
                }))
            }, putBucketReferer: function (e, t) {
                if (e.RefererConfiguration) {
                    var n = o.clone(e.RefererConfiguration || {}), r = n.DomainList || {},
                        i = r.Domains || r.Domain || [];
                    (i = o.isArray(i) ? i : [i]).length && (n.DomainList = {Domain: i});
                    var a = o.json2xml({RefererConfiguration: n}), s = e.Headers;
                    s["Content-Type"] = "application/xml", s["Content-MD5"] = o.binaryBase64(o.md5(a)), d.call(this, {
                        Action: "name/cos:PutBucketReferer",
                        method: "PUT",
                        Bucket: e.Bucket,
                        Region: e.Region,
                        body: a,
                        action: "referer",
                        headers: s
                    }, (function (e, n) {
                        return e && 204 === e.statusCode ? t(null, {statusCode: e.statusCode}) : e ? t(e) : void t(null, {
                            statusCode: n.statusCode,
                            headers: n.headers
                        })
                    }))
                } else t(o.error(new Error("missing param RefererConfiguration")))
            }, getBucketReferer: function (e, t) {
                d.call(this, {
                    Action: "name/cos:GetBucketReferer",
                    method: "GET",
                    Bucket: e.Bucket,
                    Region: e.Region,
                    Key: e.Key,
                    headers: e.Headers,
                    action: "referer"
                }, (function (e, n) {
                    if (e) if (404 === e.statusCode && "NoSuchRefererConfiguration" === e.error.Code) {
                        var r = {WebsiteConfiguration: {}, statusCode: e.statusCode};
                        e.headers && (r.headers = e.headers), t(null, r)
                    } else t(e); else {
                        var i = n.RefererConfiguration || {};
                        if (i.DomainList) {
                            var a = o.makeArray(i.DomainList.Domain || []);
                            i.DomainList = {Domains: a}
                        }
                        t(null, {RefererConfiguration: i, statusCode: n.statusCode, headers: n.headers})
                    }
                }))
            }, putBucketDomain: function (e, t) {
                var n = (e.DomainConfiguration || {}).DomainRule || e.DomainRule || [];
                n = o.clone(n);
                var r = o.json2xml({DomainConfiguration: {DomainRule: n}}), i = e.Headers;
                i["Content-Type"] = "application/xml", i["Content-MD5"] = o.binaryBase64(o.md5(r)), d.call(this, {
                    Action: "name/cos:PutBucketDomain",
                    method: "PUT",
                    Bucket: e.Bucket,
                    Region: e.Region,
                    body: r,
                    action: "domain",
                    headers: i
                }, (function (e, n) {
                    return e && 204 === e.statusCode ? t(null, {statusCode: e.statusCode}) : e ? t(e) : void t(null, {
                        statusCode: n.statusCode,
                        headers: n.headers
                    })
                }))
            }, getBucketDomain: function (e, t) {
                d.call(this, {
                    Action: "name/cos:GetBucketDomain",
                    method: "GET",
                    Bucket: e.Bucket,
                    Region: e.Region,
                    headers: e.Headers,
                    action: "domain"
                }, (function (e, n) {
                    if (e) return t(e);
                    var r = [];
                    try {
                        r = n.DomainConfiguration.DomainRule || []
                    } catch (e) {
                    }
                    r = o.clone(o.isArray(r) ? r : [r]), t(null, {
                        DomainRule: r,
                        statusCode: n.statusCode,
                        headers: n.headers
                    })
                }))
            }, deleteBucketDomain: function (e, t) {
                d.call(this, {
                    Action: "name/cos:DeleteBucketDomain",
                    method: "DELETE",
                    Bucket: e.Bucket,
                    Region: e.Region,
                    headers: e.Headers,
                    action: "domain"
                }, (function (e, n) {
                    return e && 204 === e.statusCode ? t(null, {statusCode: e.statusCode}) : e ? t(e) : void t(null, {
                        statusCode: n.statusCode,
                        headers: n.headers
                    })
                }))
            }, putBucketOrigin: function (e, t) {
                var n = (e.OriginConfiguration || {}).OriginRule || e.OriginRule || [];
                n = o.clone(n);
                var r = o.json2xml({OriginConfiguration: {OriginRule: n}}), i = e.Headers;
                i["Content-Type"] = "application/xml", i["Content-MD5"] = o.binaryBase64(o.md5(r)), d.call(this, {
                    Action: "name/cos:PutBucketOrigin",
                    method: "PUT",
                    Bucket: e.Bucket,
                    Region: e.Region,
                    body: r,
                    action: "origin",
                    headers: i
                }, (function (e, n) {
                    return e && 204 === e.statusCode ? t(null, {statusCode: e.statusCode}) : e ? t(e) : void t(null, {
                        statusCode: n.statusCode,
                        headers: n.headers
                    })
                }))
            }, getBucketOrigin: function (e, t) {
                d.call(this, {
                    Action: "name/cos:GetBucketOrigin",
                    method: "GET",
                    Bucket: e.Bucket,
                    Region: e.Region,
                    headers: e.Headers,
                    action: "origin"
                }, (function (e, n) {
                    if (e) return t(e);
                    var r = [];
                    try {
                        r = n.OriginConfiguration.OriginRule || []
                    } catch (e) {
                    }
                    r = o.clone(o.isArray(r) ? r : [r]), t(null, {
                        OriginRule: r,
                        statusCode: n.statusCode,
                        headers: n.headers
                    })
                }))
            }, deleteBucketOrigin: function (e, t) {
                d.call(this, {
                    Action: "name/cos:DeleteBucketOrigin",
                    method: "DELETE",
                    Bucket: e.Bucket,
                    Region: e.Region,
                    headers: e.Headers,
                    action: "origin"
                }, (function (e, n) {
                    return e && 204 === e.statusCode ? t(null, {statusCode: e.statusCode}) : e ? t(e) : void t(null, {
                        statusCode: n.statusCode,
                        headers: n.headers
                    })
                }))
            }, putBucketLogging: function (e, t) {
                var n = o.json2xml({BucketLoggingStatus: e.BucketLoggingStatus || ""}), r = e.Headers;
                r["Content-Type"] = "application/xml", r["Content-MD5"] = o.binaryBase64(o.md5(n)), d.call(this, {
                    Action: "name/cos:PutBucketLogging",
                    method: "PUT",
                    Bucket: e.Bucket,
                    Region: e.Region,
                    body: n,
                    action: "logging",
                    headers: r
                }, (function (e, n) {
                    return e && 204 === e.statusCode ? t(null, {statusCode: e.statusCode}) : e ? t(e) : void t(null, {
                        statusCode: n.statusCode,
                        headers: n.headers
                    })
                }))
            }, getBucketLogging: function (e, t) {
                d.call(this, {
                    Action: "name/cos:GetBucketLogging",
                    method: "GET",
                    Bucket: e.Bucket,
                    Region: e.Region,
                    headers: e.Headers,
                    action: "logging"
                }, (function (e, n) {
                    if (e) return t(e);
                    t(null, {BucketLoggingStatus: n.BucketLoggingStatus, statusCode: n.statusCode, headers: n.headers})
                }))
            }, putBucketInventory: function (e, t) {
                var n = o.clone(e.InventoryConfiguration);
                if (n.OptionalFields) {
                    var r = n.OptionalFields || [];
                    n.OptionalFields = {Field: r}
                }
                if (n.Destination && n.Destination.COSBucketDestination && n.Destination.COSBucketDestination.Encryption) {
                    var i = n.Destination.COSBucketDestination.Encryption;
                    Object.keys(i).indexOf("SSECOS") > -1 && (i["SSE-COS"] = i.SSECOS, delete i.SSECOS)
                }
                var a = o.json2xml({InventoryConfiguration: n}), s = e.Headers;
                s["Content-Type"] = "application/xml", s["Content-MD5"] = o.binaryBase64(o.md5(a)), d.call(this, {
                    Action: "name/cos:PutBucketInventory",
                    method: "PUT",
                    Bucket: e.Bucket,
                    Region: e.Region,
                    body: a,
                    action: "inventory",
                    qs: {id: e.Id},
                    headers: s
                }, (function (e, n) {
                    return e && 204 === e.statusCode ? t(null, {statusCode: e.statusCode}) : e ? t(e) : void t(null, {
                        statusCode: n.statusCode,
                        headers: n.headers
                    })
                }))
            }, getBucketInventory: function (e, t) {
                d.call(this, {
                    Action: "name/cos:GetBucketInventory",
                    method: "GET",
                    Bucket: e.Bucket,
                    Region: e.Region,
                    headers: e.Headers,
                    action: "inventory",
                    qs: {id: e.Id}
                }, (function (e, n) {
                    if (e) return t(e);
                    var r = n.InventoryConfiguration;
                    if (r && r.OptionalFields && r.OptionalFields.Field) {
                        var i = r.OptionalFields.Field;
                        o.isArray(i) || (i = [i]), r.OptionalFields = i
                    }
                    if (r.Destination && r.Destination.COSBucketDestination && r.Destination.COSBucketDestination.Encryption) {
                        var a = r.Destination.COSBucketDestination.Encryption;
                        Object.keys(a).indexOf("SSE-COS") > -1 && (a.SSECOS = a["SSE-COS"], delete a["SSE-COS"])
                    }
                    t(null, {InventoryConfiguration: r, statusCode: n.statusCode, headers: n.headers})
                }))
            }, listBucketInventory: function (e, t) {
                d.call(this, {
                    Action: "name/cos:ListBucketInventory",
                    method: "GET",
                    Bucket: e.Bucket,
                    Region: e.Region,
                    headers: e.Headers,
                    action: "inventory",
                    qs: {"continuation-token": e.ContinuationToken}
                }, (function (e, n) {
                    if (e) return t(e);
                    var r = n.ListInventoryConfigurationResult, i = r.InventoryConfiguration || [];
                    i = o.isArray(i) ? i : [i], delete r.InventoryConfiguration, o.each(i, (function (e) {
                        if (e && e.OptionalFields && e.OptionalFields.Field) {
                            var t = e.OptionalFields.Field;
                            o.isArray(t) || (t = [t]), e.OptionalFields = t
                        }
                        if (e.Destination && e.Destination.COSBucketDestination && e.Destination.COSBucketDestination.Encryption) {
                            var n = e.Destination.COSBucketDestination.Encryption;
                            Object.keys(n).indexOf("SSE-COS") > -1 && (n.SSECOS = n["SSE-COS"], delete n["SSE-COS"])
                        }
                    })), r.InventoryConfigurations = i, o.extend(r, {
                        statusCode: n.statusCode,
                        headers: n.headers
                    }), t(null, r)
                }))
            }, deleteBucketInventory: function (e, t) {
                d.call(this, {
                    Action: "name/cos:DeleteBucketInventory",
                    method: "DELETE",
                    Bucket: e.Bucket,
                    Region: e.Region,
                    headers: e.Headers,
                    action: "inventory",
                    qs: {id: e.Id}
                }, (function (e, n) {
                    return e && 204 === e.statusCode ? t(null, {statusCode: e.statusCode}) : e ? t(e) : void t(null, {
                        statusCode: n.statusCode,
                        headers: n.headers
                    })
                }))
            }, putBucketAccelerate: function (e, t) {
                if (e.AccelerateConfiguration) {
                    var n = {AccelerateConfiguration: e.AccelerateConfiguration || {}}, r = o.json2xml(n),
                        i = {"Content-Type": "application/xml"};
                    i["Content-MD5"] = o.binaryBase64(o.md5(r)), d.call(this, {
                        Action: "name/cos:PutBucketAccelerate",
                        method: "PUT",
                        Bucket: e.Bucket,
                        Region: e.Region,
                        body: r,
                        action: "accelerate",
                        headers: i
                    }, (function (e, n) {
                        if (e) return t(e);
                        t(null, {statusCode: n.statusCode, headers: n.headers})
                    }))
                } else t(o.error(new Error("missing param AccelerateConfiguration")))
            }, getBucketAccelerate: function (e, t) {
                d.call(this, {
                    Action: "name/cos:GetBucketAccelerate",
                    method: "GET",
                    Bucket: e.Bucket,
                    Region: e.Region,
                    action: "accelerate"
                }, (function (e, n) {
                    e || !n.AccelerateConfiguration && (n.AccelerateConfiguration = {}), t(e, n)
                }))
            }, putBucketEncryption: function (e, t) {
                var n = e.ServerSideEncryptionConfiguration || {}, r = n.Rule || n.Rules || [],
                    i = o.json2xml({ServerSideEncryptionConfiguration: {Rule: r}}), a = e.Headers;
                a["Content-Type"] = "application/xml", a["Content-MD5"] = o.binaryBase64(o.md5(i)), d.call(this, {
                    Action: "name/cos:PutBucketEncryption",
                    method: "PUT",
                    Bucket: e.Bucket,
                    Region: e.Region,
                    body: i,
                    action: "encryption",
                    headers: a
                }, (function (e, n) {
                    return e && 204 === e.statusCode ? t(null, {statusCode: e.statusCode}) : e ? t(e) : void t(null, {
                        statusCode: n.statusCode,
                        headers: n.headers
                    })
                }))
            }, getBucketEncryption: function (e, t) {
                d.call(this, {
                    Action: "name/cos:GetBucketEncryption",
                    method: "GET",
                    Bucket: e.Bucket,
                    Region: e.Region,
                    headers: e.Headers,
                    action: "encryption"
                }, (function (e, n) {
                    if (e) if (404 === e.statusCode && "NoSuchEncryptionConfiguration" === e.code) {
                        var r = {EncryptionConfiguration: {Rules: []}, statusCode: e.statusCode};
                        e.headers && (r.headers = e.headers), t(null, r)
                    } else t(e); else {
                        var i = o.makeArray(n.EncryptionConfiguration && n.EncryptionConfiguration.Rule || []);
                        n.EncryptionConfiguration = {Rules: i}, t(e, n)
                    }
                }))
            }, deleteBucketEncryption: function (e, t) {
                d.call(this, {
                    Action: "name/cos:DeleteBucketReplication",
                    method: "DELETE",
                    Bucket: e.Bucket,
                    Region: e.Region,
                    headers: e.Headers,
                    action: "encryption"
                }, (function (e, n) {
                    return e && 204 === e.statusCode ? t(null, {statusCode: e.statusCode}) : e ? t(e) : void t(null, {
                        statusCode: n.statusCode,
                        headers: n.headers
                    })
                }))
            }, getObject: function (e, t) {
                var n = e.Query || {}, r = e.QueryString || "", i = o.throttleOnProgress.call(this, 0, e.onProgress),
                    a = e.tracker;
                a && a.setParams({signStartTime: (new Date).getTime()}), n["response-content-type"] = e.ResponseContentType, n["response-content-language"] = e.ResponseContentLanguage, n["response-expires"] = e.ResponseExpires, n["response-cache-control"] = e.ResponseCacheControl, n["response-content-disposition"] = e.ResponseContentDisposition, n["response-content-encoding"] = e.ResponseContentEncoding, d.call(this, {
                    Action: "name/cos:GetObject",
                    method: "GET",
                    Bucket: e.Bucket,
                    Region: e.Region,
                    Key: e.Key,
                    VersionId: e.VersionId,
                    DataType: e.DataType,
                    headers: e.Headers,
                    qs: n,
                    qsStr: r,
                    rawBody: !0,
                    onDownloadProgress: i,
                    tracker: a
                }, (function (n, r) {
                    if (i(null, !0), n) {
                        var a = n.statusCode;
                        return e.Headers["If-Modified-Since"] && a && 304 === a ? t(null, {NotModified: !0}) : t(n)
                    }
                    t(null, {
                        Body: r.body,
                        ETag: o.attr(r.headers, "etag", ""),
                        statusCode: r.statusCode,
                        headers: r.headers
                    })
                }))
            }, headObject: function (e, t) {
                d.call(this, {
                    Action: "name/cos:HeadObject",
                    method: "HEAD",
                    Bucket: e.Bucket,
                    Region: e.Region,
                    Key: e.Key,
                    VersionId: e.VersionId,
                    headers: e.Headers
                }, (function (n, r) {
                    if (n) {
                        var i = n.statusCode;
                        return e.Headers["If-Modified-Since"] && i && 304 === i ? t(null, {
                            NotModified: !0,
                            statusCode: i
                        }) : t(n)
                    }
                    r.ETag = o.attr(r.headers, "etag", ""), t(null, r)
                }))
            }, listObjectVersions: function (e, t) {
                var n = {};
                n.prefix = e.Prefix || "", n.delimiter = e.Delimiter, n["key-marker"] = e.KeyMarker, n["version-id-marker"] = e.VersionIdMarker, n["max-keys"] = e.MaxKeys, n["encoding-type"] = e.EncodingType, d.call(this, {
                    Action: "name/cos:GetBucketObjectVersions",
                    ResourceKey: n.prefix,
                    method: "GET",
                    Bucket: e.Bucket,
                    Region: e.Region,
                    headers: e.Headers,
                    qs: n,
                    action: "versions"
                }, (function (e, n) {
                    if (e) return t(e);
                    var r = n.ListVersionsResult || {}, i = r.DeleteMarker || [];
                    i = o.isArray(i) ? i : [i];
                    var a = r.Version || [];
                    a = o.isArray(a) ? a : [a];
                    var s = o.clone(r);
                    delete s.DeleteMarker, delete s.Version, o.extend(s, {
                        DeleteMarkers: i,
                        Versions: a,
                        statusCode: n.statusCode,
                        headers: n.headers
                    }), t(null, s)
                }))
            }, putObject: function (e, t) {
                var n = this, r = e.ContentLength, i = o.throttleOnProgress.call(n, r, e.onProgress), a = e.Headers;
                a["Cache-Control"] || a["cache-control"] || (a["Cache-Control"] = ""), a["Content-Type"] || a["content-type"] || (a["Content-Type"] = e.Body && e.Body.type || "");
                var c = e.UploadAddMetaMd5 || n.options.UploadAddMetaMd5 || n.options.UploadCheckContentMd5,
                    u = e.tracker;
                c && u && u.setParams({md5StartTime: (new Date).getTime()}), o.getBodyMd5(c, e.Body, (function (c) {
                    c && (u && u.setParams({md5EndTime: (new Date).getTime()}), n.options.UploadCheckContentMd5 && (a["Content-MD5"] = o.binaryBase64(c)), (e.UploadAddMetaMd5 || n.options.UploadAddMetaMd5) && (a["x-cos-meta-md5"] = c)), void 0 !== e.ContentLength && (a["Content-Length"] = e.ContentLength), i(null, !0), d.call(n, {
                        Action: "name/cos:PutObject",
                        TaskId: e.TaskId,
                        method: "PUT",
                        Bucket: e.Bucket,
                        Region: e.Region,
                        Key: e.Key,
                        headers: e.Headers,
                        qs: e.Query,
                        body: e.Body,
                        onProgress: i,
                        tracker: u
                    }, (function (a, c) {
                        if (a) return i(null, !0), t(a);
                        i({loaded: r, total: r}, !0);
                        var u = s({
                            ForcePathStyle: n.options.ForcePathStyle,
                            protocol: n.options.Protocol,
                            domain: n.options.Domain,
                            bucket: e.Bucket,
                            region: n.options.UseAccelerate ? "accelerate" : e.Region,
                            object: e.Key
                        });
                        u = u.substr(u.indexOf("://") + 3), c.Location = u, c.ETag = o.attr(c.headers, "etag", ""), t(null, c)
                    }))
                }), e.onHashProgress)
            }, deleteObject: function (e, t) {
                d.call(this, {
                    Action: "name/cos:DeleteObject",
                    method: "DELETE",
                    Bucket: e.Bucket,
                    Region: e.Region,
                    Key: e.Key,
                    headers: e.Headers,
                    VersionId: e.VersionId,
                    action: e.Recursive ? "recursive" : ""
                }, (function (e, n) {
                    if (e) {
                        var r = e.statusCode;
                        return r && 404 === r ? t(null, {BucketNotFound: !0, statusCode: r}) : t(e)
                    }
                    t(null, {statusCode: n.statusCode, headers: n.headers})
                }))
            }, getObjectAcl: function (e, t) {
                d.call(this, {
                    Action: "name/cos:GetObjectACL",
                    method: "GET",
                    Bucket: e.Bucket,
                    Region: e.Region,
                    Key: e.Key,
                    headers: e.Headers,
                    action: "acl"
                }, (function (e, n) {
                    if (e) return t(e);
                    var r = n.AccessControlPolicy || {}, a = r.Owner || {},
                        s = r.AccessControlList && r.AccessControlList.Grant || [];
                    s = o.isArray(s) ? s : [s];
                    var c = i(r);
                    delete c.GrantWrite, n.headers && n.headers["x-cos-acl"] && (c.ACL = n.headers["x-cos-acl"]), c = o.extend(c, {
                        Owner: a,
                        Grants: s,
                        statusCode: n.statusCode,
                        headers: n.headers
                    }), t(null, c)
                }))
            }, putObjectAcl: function (e, t) {
                var n = e.Headers, r = "";
                if (e.AccessControlPolicy) {
                    var i = o.clone(e.AccessControlPolicy || {}), s = i.Grants || i.Grant;
                    s = o.isArray(s) ? s : [s], delete i.Grant, delete i.Grants, i.AccessControlList = {Grant: s}, r = o.json2xml({AccessControlPolicy: i}), n["Content-Type"] = "application/xml", n["Content-MD5"] = o.binaryBase64(o.md5(r))
                }
                o.each(n, (function (e, t) {
                    0 === t.indexOf("x-cos-grant-") && (n[t] = a(n[t]))
                })), d.call(this, {
                    Action: "name/cos:PutObjectACL",
                    method: "PUT",
                    Bucket: e.Bucket,
                    Region: e.Region,
                    Key: e.Key,
                    action: "acl",
                    headers: n,
                    body: r
                }, (function (e, n) {
                    if (e) return t(e);
                    t(null, {statusCode: n.statusCode, headers: n.headers})
                }))
            }, optionsObject: function (e, t) {
                var n = e.Headers;
                n.Origin = e.Origin, n["Access-Control-Request-Method"] = e.AccessControlRequestMethod, n["Access-Control-Request-Headers"] = e.AccessControlRequestHeaders, d.call(this, {
                    Action: "name/cos:OptionsObject",
                    method: "OPTIONS",
                    Bucket: e.Bucket,
                    Region: e.Region,
                    Key: e.Key,
                    headers: n
                }, (function (e, n) {
                    if (e) return e.statusCode && 403 === e.statusCode ? t(null, {
                        OptionsForbidden: !0,
                        statusCode: e.statusCode
                    }) : t(e);
                    var r = n.headers || {};
                    t(null, {
                        AccessControlAllowOrigin: r["access-control-allow-origin"],
                        AccessControlAllowMethods: r["access-control-allow-methods"],
                        AccessControlAllowHeaders: r["access-control-allow-headers"],
                        AccessControlExposeHeaders: r["access-control-expose-headers"],
                        AccessControlMaxAge: r["access-control-max-age"],
                        statusCode: n.statusCode,
                        headers: n.headers
                    })
                }))
            }, putObjectCopy: function (e, t) {
                var n = this, r = e.Headers;
                r["Cache-Control"] || r["cache-control"] || (r["Cache-Control"] = "");
                var i = e.CopySource || "", a = o.getSourceParams.call(this, i);
                if (a) {
                    var c = a[1], u = a[3], l = decodeURIComponent(a[4]);
                    d.call(this, {
                        Scope: [{
                            action: "name/cos:GetObject",
                            bucket: c,
                            region: u,
                            prefix: l
                        }, {action: "name/cos:PutObject", bucket: e.Bucket, region: e.Region, prefix: e.Key}],
                        method: "PUT",
                        Bucket: e.Bucket,
                        Region: e.Region,
                        Key: e.Key,
                        VersionId: e.VersionId,
                        headers: e.Headers
                    }, (function (r, i) {
                        if (r) return t(r);
                        var a = o.clone(i.CopyObjectResult || {}), c = s({
                            ForcePathStyle: n.options.ForcePathStyle,
                            protocol: n.options.Protocol,
                            domain: n.options.Domain,
                            bucket: e.Bucket,
                            region: e.Region,
                            object: e.Key,
                            isLocation: !0
                        });
                        o.extend(a, {Location: c, statusCode: i.statusCode, headers: i.headers}), t(null, a)
                    }))
                } else t(o.error(new Error("CopySource format error")))
            }, deleteMultipleObject: function (e, t) {
                var n = e.Objects || [], r = e.Quiet;
                n = o.isArray(n) ? n : [n];
                var i = o.json2xml({Delete: {Object: n, Quiet: r || !1}}), a = e.Headers;
                a["Content-Type"] = "application/xml", a["Content-MD5"] = o.binaryBase64(o.md5(i));
                var s = o.map(n, (function (t) {
                    return {action: "name/cos:DeleteObject", bucket: e.Bucket, region: e.Region, prefix: t.Key}
                }));
                d.call(this, {
                    Scope: s,
                    method: "POST",
                    Bucket: e.Bucket,
                    Region: e.Region,
                    body: i,
                    action: "delete",
                    headers: a
                }, (function (e, n) {
                    if (e) return t(e);
                    var r = n.DeleteResult || {}, i = r.Deleted || [], a = r.Error || [];
                    i = o.isArray(i) ? i : [i], a = o.isArray(a) ? a : [a];
                    var s = o.clone(r);
                    o.extend(s, {Error: a, Deleted: i, statusCode: n.statusCode, headers: n.headers}), t(null, s)
                }))
            }, restoreObject: function (e, t) {
                var n = e.Headers;
                if (e.RestoreRequest) {
                    var r = e.RestoreRequest || {}, i = o.json2xml({RestoreRequest: r});
                    n["Content-Type"] = "application/xml", n["Content-MD5"] = o.binaryBase64(o.md5(i)), d.call(this, {
                        Action: "name/cos:RestoreObject",
                        method: "POST",
                        Bucket: e.Bucket,
                        Region: e.Region,
                        Key: e.Key,
                        VersionId: e.VersionId,
                        body: i,
                        action: "restore",
                        headers: n
                    }, t)
                } else t(o.error(new Error("missing param RestoreRequest")))
            }, putObjectTagging: function (e, t) {
                var n = e.Tagging || {}, r = n.TagSet || n.Tags || e.Tags || [];
                r = o.clone(o.isArray(r) ? r : [r]);
                var i = o.json2xml({Tagging: {TagSet: {Tag: r}}}), a = e.Headers;
                a["Content-Type"] = "application/xml", a["Content-MD5"] = o.binaryBase64(o.md5(i)), d.call(this, {
                    Action: "name/cos:PutObjectTagging",
                    method: "PUT",
                    Bucket: e.Bucket,
                    Key: e.Key,
                    Region: e.Region,
                    body: i,
                    action: "tagging",
                    headers: a,
                    VersionId: e.VersionId
                }, (function (e, n) {
                    return e && 204 === e.statusCode ? t(null, {statusCode: e.statusCode}) : e ? t(e) : void t(null, {
                        statusCode: n.statusCode,
                        headers: n.headers
                    })
                }))
            }, getObjectTagging: function (e, t) {
                d.call(this, {
                    Action: "name/cos:GetObjectTagging",
                    method: "GET",
                    Key: e.Key,
                    Bucket: e.Bucket,
                    Region: e.Region,
                    headers: e.Headers,
                    action: "tagging",
                    VersionId: e.VersionId
                }, (function (e, n) {
                    if (e) if (404 !== e.statusCode || !e.error || "Not Found" !== e.error && "NoSuchTagSet" !== e.error.Code) t(e); else {
                        var r = {Tags: [], statusCode: e.statusCode};
                        e.headers && (r.headers = e.headers), t(null, r)
                    } else {
                        var i = [];
                        try {
                            i = n.Tagging.TagSet.Tag || []
                        } catch (e) {
                        }
                        i = o.clone(o.isArray(i) ? i : [i]), t(null, {
                            Tags: i,
                            statusCode: n.statusCode,
                            headers: n.headers
                        })
                    }
                }))
            }, deleteObjectTagging: function (e, t) {
                d.call(this, {
                    Action: "name/cos:DeleteObjectTagging",
                    method: "DELETE",
                    Bucket: e.Bucket,
                    Region: e.Region,
                    Key: e.Key,
                    headers: e.Headers,
                    action: "tagging",
                    VersionId: e.VersionId
                }, (function (e, n) {
                    return e && 204 === e.statusCode ? t(null, {statusCode: e.statusCode}) : e ? t(e) : void t(null, {
                        statusCode: n.statusCode,
                        headers: n.headers
                    })
                }))
            }, selectObjectContent: function (e, t) {
                if (!e.SelectType) return t(o.error(new Error("missing param SelectType")));
                var n = e.SelectRequest || {}, r = o.json2xml({SelectRequest: n}), i = e.Headers;
                i["Content-Type"] = "application/xml", i["Content-MD5"] = o.binaryBase64(o.md5(r)), d.call(this, {
                    Action: "name/cos:GetObject",
                    method: "POST",
                    Bucket: e.Bucket,
                    Region: e.Region,
                    Key: e.Key,
                    headers: e.Headers,
                    action: "select",
                    qs: {"select-type": e.SelectType},
                    VersionId: e.VersionId,
                    body: r,
                    DataType: "arraybuffer",
                    rawBody: !0
                }, (function (e, n) {
                    if (e && 204 === e.statusCode) return t(null, {statusCode: e.statusCode});
                    if (e) return t(e);
                    var r = o.parseSelectPayload(n.body);
                    t(null, {statusCode: n.statusCode, headers: n.headers, Body: r.body, Payload: r.payload})
                }))
            }, appendObject: function (e, t) {
                var n = e.Headers;
                n["Cache-Control"] || n["cache-control"] || (n["Cache-Control"] = ""), n["Content-Type"] || n["content-type"] || (n["Content-Type"] = e.Body && e.Body.type || ""), d.call(this, {
                    Action: "name/cos:AppendObject",
                    method: "POST",
                    Bucket: e.Bucket,
                    Region: e.Region,
                    action: "append",
                    Key: e.Key,
                    body: e.Body,
                    qs: {position: e.Position},
                    headers: e.Headers
                }, (function (e, n) {
                    if (e) return t(e);
                    t(null, n)
                }))
            }, uploadPartCopy: function (e, t) {
                var n = e.CopySource || "", r = o.getSourceParams.call(this, n);
                if (r) {
                    var i = r[1], a = r[3], s = decodeURIComponent(r[4]);
                    d.call(this, {
                        Scope: [{
                            action: "name/cos:GetObject",
                            bucket: i,
                            region: a,
                            prefix: s
                        }, {action: "name/cos:PutObject", bucket: e.Bucket, region: e.Region, prefix: e.Key}],
                        method: "PUT",
                        Bucket: e.Bucket,
                        Region: e.Region,
                        Key: e.Key,
                        VersionId: e.VersionId,
                        qs: {partNumber: e.PartNumber, uploadId: e.UploadId},
                        headers: e.Headers
                    }, (function (e, n) {
                        if (e) return t(e);
                        var r = o.clone(n.CopyPartResult || {});
                        o.extend(r, {statusCode: n.statusCode, headers: n.headers}), t(null, r)
                    }))
                } else t(o.error(new Error("CopySource format error")))
            }, multipartInit: function (e, t) {
                var n = this, r = e.Headers, i = e.tracker;
                r["Cache-Control"] || r["cache-control"] || (r["Cache-Control"] = ""), r["Content-Type"] || r["content-type"] || (r["Content-Type"] = e.Body && e.Body.type || "");
                var a = e.Body && (e.UploadAddMetaMd5 || n.options.UploadAddMetaMd5);
                a && i && i.setParams({md5StartTime: (new Date).getTime()}), o.getBodyMd5(a, e.Body, (function (r) {
                    r && (e.Headers["x-cos-meta-md5"] = r), a && i && i.setParams({md5EndTime: (new Date).getTime()}), d.call(n, {
                        Action: "name/cos:InitiateMultipartUpload",
                        method: "POST",
                        Bucket: e.Bucket,
                        Region: e.Region,
                        Key: e.Key,
                        action: "uploads",
                        headers: e.Headers,
                        qs: e.Query,
                        tracker: i
                    }, (function (e, n) {
                        return e ? (i && i.parent && i.parent.setParams({errorNode: "multipartInit"}), t(e)) : (n = o.clone(n || {})) && n.InitiateMultipartUploadResult ? t(null, o.extend(n.InitiateMultipartUploadResult, {
                            statusCode: n.statusCode,
                            headers: n.headers
                        })) : void t(null, n)
                    }))
                }), e.onHashProgress)
            }, multipartUpload: function (e, t) {
                var n = this;
                o.getFileSize("multipartUpload", e, (function () {
                    var r = e.tracker, i = n.options.UploadCheckContentMd5;
                    i && r && r.setParams({md5StartTime: (new Date).getTime()}), o.getBodyMd5(i, e.Body, (function (a) {
                        a && (e.Headers["Content-MD5"] = o.binaryBase64(a)), i && r && r.setParams({md5EndTime: (new Date).getTime()}), r && r.setParams({partNumber: e.PartNumber}), d.call(n, {
                            Action: "name/cos:UploadPart",
                            TaskId: e.TaskId,
                            method: "PUT",
                            Bucket: e.Bucket,
                            Region: e.Region,
                            Key: e.Key,
                            qs: {partNumber: e.PartNumber, uploadId: e.UploadId},
                            headers: e.Headers,
                            onProgress: e.onProgress,
                            body: e.Body || null,
                            tracker: r
                        }, (function (e, n) {
                            if (e) return r && r.parent && r.parent.setParams({errorNode: "multipartUpload"}), t(e);
                            t(null, {ETag: o.attr(n.headers, "etag", ""), statusCode: n.statusCode, headers: n.headers})
                        }))
                    }))
                }))
            }, multipartComplete: function (e, t) {
                for (var n = this, r = e.UploadId, i = e.Parts, a = e.tracker, c = 0, u = i.length; c < u; c++) i[c].ETag && 0 === i[c].ETag.indexOf('"') || (i[c].ETag = '"' + i[c].ETag + '"');
                var l = o.json2xml({CompleteMultipartUpload: {Part: i}});
                l = l.replace(/\n\s*/g, "");
                var p = e.Headers;
                p["Content-Type"] = "application/xml", p["Content-MD5"] = o.binaryBase64(o.md5(l)), d.call(this, {
                    Action: "name/cos:CompleteMultipartUpload",
                    method: "POST",
                    Bucket: e.Bucket,
                    Region: e.Region,
                    Key: e.Key,
                    qs: {uploadId: r},
                    body: l,
                    headers: p,
                    tracker: a
                }, (function (r, i) {
                    if (r) return a && a.parent && a.parent.setParams({errorNode: "multipartComplete"}), t(r);
                    var c = s({
                        ForcePathStyle: n.options.ForcePathStyle,
                        protocol: n.options.Protocol,
                        domain: n.options.Domain,
                        bucket: e.Bucket,
                        region: e.Region,
                        object: e.Key,
                        isLocation: !0
                    }), u = i.CompleteMultipartUploadResult || {};
                    u.ProcessResults && u && u.ProcessResults && (u.UploadResult = {
                        OriginalInfo: {
                            Key: u.Key,
                            Location: c,
                            ETag: u.ETag,
                            ImageInfo: u.ImageInfo
                        }, ProcessResults: u.ProcessResults
                    }, delete u.ImageInfo, delete u.ProcessResults);
                    var l = o.extend(u, {Location: c, statusCode: i.statusCode, headers: i.headers});
                    t(null, l)
                }))
            }, multipartList: function (e, t) {
                var n = {};
                n.delimiter = e.Delimiter, n["encoding-type"] = e.EncodingType, n.prefix = e.Prefix || "", n["max-uploads"] = e.MaxUploads, n["key-marker"] = e.KeyMarker, n["upload-id-marker"] = e.UploadIdMarker, n = o.clearKey(n);
                var r = e.tracker;
                r && r.setParams({signStartTime: (new Date).getTime()}), d.call(this, {
                    Action: "name/cos:ListMultipartUploads",
                    ResourceKey: n.prefix,
                    method: "GET",
                    Bucket: e.Bucket,
                    Region: e.Region,
                    headers: e.Headers,
                    qs: n,
                    action: "uploads",
                    tracker: r
                }, (function (e, n) {
                    if (e) return r && r.parent && r.parent.setParams({errorNode: "multipartList"}), t(e);
                    if (n && n.ListMultipartUploadsResult) {
                        var i = n.ListMultipartUploadsResult.Upload || [];
                        i = o.isArray(i) ? i : [i], n.ListMultipartUploadsResult.Upload = i
                    }
                    var a = o.clone(n.ListMultipartUploadsResult || {});
                    o.extend(a, {statusCode: n.statusCode, headers: n.headers}), t(null, a)
                }))
            }, multipartListPart: function (e, t) {
                var n = {}, r = e.tracker;
                n.uploadId = e.UploadId, n["encoding-type"] = e.EncodingType, n["max-parts"] = e.MaxParts, n["part-number-marker"] = e.PartNumberMarker, d.call(this, {
                    Action: "name/cos:ListParts",
                    method: "GET",
                    Bucket: e.Bucket,
                    Region: e.Region,
                    Key: e.Key,
                    headers: e.Headers,
                    qs: n
                }, (function (e, n) {
                    if (e) return r && r.parent && r.parent.setParams({errorNode: "multipartListPart"}), t(e);
                    var i = n.ListPartsResult || {}, a = i.Part || [];
                    a = o.isArray(a) ? a : [a], i.Part = a;
                    var s = o.clone(i);
                    o.extend(s, {statusCode: n.statusCode, headers: n.headers}), t(null, s)
                }))
            }, multipartAbort: function (e, t) {
                var n = {};
                n.uploadId = e.UploadId, d.call(this, {
                    Action: "name/cos:AbortMultipartUpload",
                    method: "DELETE",
                    Bucket: e.Bucket,
                    Region: e.Region,
                    Key: e.Key,
                    headers: e.Headers,
                    qs: n
                }, (function (e, n) {
                    if (e) return t(e);
                    t(null, {statusCode: n.statusCode, headers: n.headers})
                }))
            }, request: function (e, t) {
                d.call(this, {
                    method: e.Method,
                    Bucket: e.Bucket,
                    Region: e.Region,
                    Key: e.Key,
                    action: e.Action,
                    headers: e.Headers,
                    qs: e.Query,
                    body: e.Body,
                    Url: e.Url,
                    rawBody: e.RawBody,
                    DataType: e.DataType
                }, (function (e, n) {
                    if (e) return t(e);
                    n && n.body && (n.Body = n.body, delete n.body), t(e, n)
                }))
            }, getObjectUrl: function (e, t) {
                var n = this, r = void 0 === e.UseAccelerate ? n.options.UseAccelerate : e.UseAccelerate, i = s({
                    ForcePathStyle: n.options.ForcePathStyle,
                    protocol: e.Protocol || n.options.Protocol,
                    domain: e.Domain || n.options.Domain,
                    bucket: e.Bucket,
                    region: r ? "accelerate" : e.Region,
                    object: e.Key
                }), a = "";
                e.Query && (a += o.obj2str(e.Query)), e.QueryString && (a += (a ? "&" : "") + e.QueryString);
                var l = i;
                if (void 0 !== e.Sign && !e.Sign) return a && (l += "?" + a), t(null, {Url: l}), l;
                var d = c.call(this, {Bucket: e.Bucket, Region: e.Region, UseAccelerate: e.UseAccelerate, Url: i}),
                    p = u.call(this, {
                        Action: "PUT" === (e.Method || "").toUpperCase() ? "name/cos:PutObject" : "name/cos:GetObject",
                        Bucket: e.Bucket || "",
                        Region: e.Region || "",
                        Method: e.Method || "get",
                        Key: e.Key,
                        Expires: e.Expires,
                        Headers: e.Headers,
                        Query: e.Query,
                        SignHost: d,
                        ForceSignHost: !1 !== e.ForceSignHost && n.options.ForceSignHost
                    }, (function (e, n) {
                        if (t) if (e) t(e); else {
                            var r = i;
                            r += "?" + (n.Authorization.indexOf("q-signature") > -1 ? function (e) {
                                var t = e.match(/q-url-param-list.*?(?=&)/g)[0],
                                    n = "q-url-param-list=" + encodeURIComponent(t.replace(/q-url-param-list=/, "")).toLowerCase(),
                                    r = new RegExp(t, "g");
                                return e.replace(r, n)
                            }(n.Authorization) : "sign=" + encodeURIComponent(n.Authorization)), n.SecurityToken && (r += "&x-cos-security-token=" + n.SecurityToken), n.ClientIP && (r += "&clientIP=" + n.ClientIP), n.ClientUA && (r += "&clientUA=" + n.ClientUA), n.Token && (r += "&token=" + n.Token), a && (r += "&" + a), setTimeout((function () {
                                t(null, {Url: r})
                            }))
                        }
                    }));
                return p ? (l += "?" + p.Authorization + (p.SecurityToken ? "&x-cos-security-token=" + p.SecurityToken : ""), a && (l += "&" + a)) : a && (l += "?" + a), l
            }, getAuth: function (e) {
                return o.getAuth({
                    SecretId: e.SecretId || this.options.SecretId || "",
                    SecretKey: e.SecretKey || this.options.SecretKey || "",
                    Bucket: e.Bucket,
                    Region: e.Region,
                    Method: e.Method,
                    Key: e.Key,
                    Query: e.Query,
                    Headers: e.Headers,
                    Expires: e.Expires,
                    UseRawKey: this.options.UseRawKey,
                    SystemClockOffset: this.options.SystemClockOffset
                })
            }
        };
        e.exports.init = function (e, t) {
            t.transferToTaskMethod(f, "putObject"), o.each(f, (function (t, n) {
                e.prototype[n] = o.apiWrapper(n, t), function (e, t, n) {
                    o.each(["Cors", "Acl"], (function (r) {
                        if (e.slice(-r.length) === r) {
                            var i = e.slice(0, -r.length) + r.toUpperCase(), a = o.apiWrapper(e, t);
                            n[i] = function () {
                                a.apply(this, arguments)
                            }
                        }
                    }))
                }(n, t, e.prototype)
            }))
        }
    }, function (e, t, n) {
        var r = n(0), o = function (e) {
            switch (r(e)) {
                case"string":
                    return e;
                case"boolean":
                    return e ? "true" : "false";
                case"number":
                    return isFinite(e) ? e : "";
                default:
                    return ""
            }
        }, i = function (e, t, n) {
            var r = {};
            return t.getAllResponseHeaders().trim().split("\n").forEach((function (e) {
                if (e) {
                    var t = e.indexOf(":"), n = e.substr(0, t).trim().toLowerCase(), o = e.substr(t + 1).trim();
                    r[n] = o
                }
            })), {error: e, statusCode: t.status, statusMessage: t.statusText, headers: r, body: n}
        }, a = function (e, t) {
            return t || "text" !== t ? e.response : e.responseText
        };
        e.exports = function (e, t) {
            var n, s, c, u, l = (e.method || "GET").toUpperCase(), d = e.url;
            if (e.qs) {
                var p = (n = e.qs, s = s || "&", c = c || "=", null === n && (n = void 0), "object" === r(n) ? Object.keys(n).map((function (e) {
                    var t = encodeURIComponent(o(e)) + c;
                    return Array.isArray(n[e]) ? n[e].map((function (e) {
                        return t + encodeURIComponent(o(e))
                    })).join(s) : t + encodeURIComponent(o(n[e]))
                })).filter(Boolean).join(s) : u ? encodeURIComponent(o(u)) + c + encodeURIComponent(o(n)) : "");
                p && (d += (-1 === d.indexOf("?") ? "?" : "&") + p)
            }
            var f = new XMLHttpRequest;
            if (f.open(l, d, !0), f.responseType = e.dataType || "text", e.xhrFields) for (var h in e.xhrFields) f[h] = e.xhrFields[h];
            var m = e.headers;
            if (m) for (var g in m) m.hasOwnProperty(g) && "content-length" !== g.toLowerCase() && "user-agent" !== g.toLowerCase() && "origin" !== g.toLowerCase() && "host" !== g.toLowerCase() && f.setRequestHeader(g, m[g]);
            return e.onProgress && f.upload && (f.upload.onprogress = e.onProgress), e.onDownloadProgress && (f.onprogress = e.onDownloadProgress), e.timeout && (f.timeout = e.timeout), f.ontimeout = function (e) {
                var n = new Error("timeout");
                t(i(n, f))
            }, f.onload = function () {
                t(i(null, f, a(f, e.dataType)))
            }, f.onerror = function (n) {
                var r = a(f, e.dataType);
                if (r) t(i(null, f, r)); else {
                    var o = f.statusText;
                    o || 0 !== f.status || (o = new Error("CORS blocked or network error")), t(i(o, f, r))
                }
            }, f.send(e.body || ""), f
        }
    }, function (e, t, n) {
        var r = n(0), o = n(10), i = n(29), a = n(9).EventProxy, s = n(1), c = n(7);

        function u(e, t) {
            var n = e.TaskId, r = e.Bucket, c = e.Region, u = e.Key, p = e.StorageClass, f = this, h = {},
                m = e.FileSize, g = e.SliceSize, y = Math.ceil(m / g), v = 0,
                C = s.throttleOnProgress.call(f, m, e.onHashProgress), k = function (t, n) {
                    var r = t.length;
                    if (0 === r) return n(null, !0);
                    if (r > y) return n(null, !1);
                    if (r > 1 && Math.max(t[0].Size, t[1].Size) !== g) return n(null, !1);
                    !function o(i) {
                        if (i < r) {
                            var a = t[i];
                            !function (t, n) {
                                var r = g * (t - 1), o = Math.min(r + g, m), i = o - r;
                                h[t] ? n(null, {
                                    PartNumber: t,
                                    ETag: h[t],
                                    Size: i
                                }) : s.fileSlice(e.Body, r, o, !1, (function (e) {
                                    s.getFileMd5(e, (function (e, r) {
                                        if (e) return n(s.error(e));
                                        var o = '"' + r + '"';
                                        h[t] = o, 1, C({loaded: v += i, total: m}), n(null, {
                                            PartNumber: t,
                                            ETag: o,
                                            Size: i
                                        })
                                    }))
                                }))
                            }(a.PartNumber, (function (e, t) {
                                t && t.ETag === a.ETag && t.Size === a.Size ? o(i + 1) : n(null, !1)
                            }))
                        } else n(null, !0)
                    }(0)
                }, S = new a;
            S.on("error", (function (e) {
                if (f._isRunningTask(n)) return t(e)
            })), S.on("upload_id_available", (function (e) {
                var n = {}, r = [];
                s.each(e.PartList, (function (e) {
                    n[e.PartNumber] = e
                }));
                for (var o = 1; o <= y; o++) {
                    var i = n[o];
                    i ? (i.PartNumber = o, i.Uploaded = !0) : i = {PartNumber: o, ETag: null, Uploaded: !1}, r.push(i)
                }
                e.PartList = r, t(null, e)
            })), S.on("no_available_upload_id", (function () {
                if (f._isRunningTask(n)) {
                    var o = s.extend({
                        Bucket: r,
                        Region: c,
                        Key: u,
                        Query: s.clone(e.Query),
                        StorageClass: p,
                        Body: e.Body,
                        calledBySdk: "sliceUploadFile",
                        tracker: e.tracker
                    }, e), i = s.clone(e.Headers);
                    delete i["x-cos-mime-limit"], o.Headers = i, f.multipartInit(o, (function (e, r) {
                        if (f._isRunningTask(n)) {
                            if (e) return S.emit("error", e);
                            var o = r.UploadId;
                            if (!o) return t(s.error(new Error("no such upload id")));
                            S.emit("upload_id_available", {UploadId: o, PartList: []})
                        }
                    }))
                }
            })), S.on("has_and_check_upload_id", (function (t) {
                t = t.reverse(), i.eachLimit(t, 1, (function (t, i) {
                    f._isRunningTask(n) && (o.using[t] ? i() : d.call(f, {
                        Bucket: r,
                        Region: c,
                        Key: u,
                        UploadId: t,
                        tracker: e.tracker
                    }, (function (e, r) {
                        if (f._isRunningTask(n)) {
                            if (e) return o.removeUsing(t), S.emit("error", e);
                            var a = r.PartList;
                            a.forEach((function (e) {
                                e.PartNumber *= 1, e.Size *= 1, e.ETag = e.ETag || ""
                            })), k(a, (function (e, r) {
                                if (f._isRunningTask(n)) return e ? S.emit("error", e) : void (r ? i({
                                    UploadId: t,
                                    PartList: a
                                }) : i())
                            }))
                        }
                    })))
                }), (function (e) {
                    f._isRunningTask(n) && (C(null, !0), e && e.UploadId ? S.emit("upload_id_available", e) : S.emit("no_available_upload_id"))
                }))
            })), S.on("seek_local_avail_upload_id", (function (t) {
                var i = o.getFileId(e.Body, e.ChunkSize, r, u), a = o.getUploadIdList.call(f, i);
                if (i && a) {
                    !function i(l) {
                        if (l >= a.length) S.emit("has_and_check_upload_id", t); else {
                            var p = a[l];
                            if (!s.isInArray(t, p)) return o.removeUploadId.call(f, p), void i(l + 1);
                            o.using[p] ? i(l + 1) : d.call(f, {
                                Bucket: r,
                                Region: c,
                                Key: u,
                                UploadId: p,
                                tracker: e.tracker
                            }, (function (e, t) {
                                f._isRunningTask(n) && (e ? (o.removeUploadId.call(f, p), i(l + 1)) : S.emit("upload_id_available", {
                                    UploadId: p,
                                    PartList: t.PartList
                                }))
                            }))
                        }
                    }(0)
                } else S.emit("has_and_check_upload_id", t)
            })), S.on("get_remote_upload_id_list", (function () {
                l.call(f, {Bucket: r, Region: c, Key: u, tracker: e.tracker}, (function (t, i) {
                    if (f._isRunningTask(n)) {
                        if (t) return S.emit("error", t);
                        var a = s.filter(i.UploadList, (function (e) {
                            return e.Key === u && (!p || e.StorageClass.toUpperCase() === p.toUpperCase())
                        })).reverse().map((function (e) {
                            return e.UploadId || e.UploadID
                        }));
                        if (a.length) S.emit("seek_local_avail_upload_id", a); else {
                            var c, l = o.getFileId(e.Body, e.ChunkSize, r, u);
                            l && (c = o.getUploadIdList.call(f, l)) && s.each(c, (function (e) {
                                o.removeUploadId.call(f, e)
                            })), S.emit("no_available_upload_id")
                        }
                    }
                }))
            })), S.emit("get_remote_upload_id_list")
        }

        function l(e, t) {
            var n = this, r = [], o = {
                Bucket: e.Bucket,
                Region: e.Region,
                Prefix: e.Key,
                calledBySdk: e.calledBySdk || "sliceUploadFile",
                tracker: e.tracker
            };
            !function e() {
                n.multipartList(o, (function (n, i) {
                    if (n) return t(n);
                    r.push.apply(r, i.Upload || []), "true" === i.IsTruncated ? (o.KeyMarker = i.NextKeyMarker, o.UploadIdMarker = i.NextUploadIdMarker, e()) : t(null, {UploadList: r})
                }))
            }()
        }

        function d(e, t) {
            var n = this, r = [], o = {
                Bucket: e.Bucket,
                Region: e.Region,
                Key: e.Key,
                UploadId: e.UploadId,
                calledBySdk: "sliceUploadFile",
                tracker: e.tracker
            };
            !function e() {
                n.multipartListPart(o, (function (n, i) {
                    if (n) return t(n);
                    r.push.apply(r, i.Part || []), "true" === i.IsTruncated ? (o.PartNumberMarker = i.NextPartNumberMarker, e()) : t(null, {PartList: r})
                }))
            }()
        }

        function p(e, t) {
            var n = this, r = e.TaskId, o = e.Bucket, a = e.Region, c = e.Key, u = e.UploadData, l = e.FileSize,
                d = e.SliceSize, p = Math.min(e.AsyncLimit || n.options.ChunkParallelLimit || 1, 256), h = e.Body,
                m = Math.ceil(l / d), g = 0, y = e.ServerSideEncryption, v = e.Headers,
                C = s.filter(u.PartList, (function (e) {
                    return e.Uploaded && (g += e.PartNumber >= m && l % d || d), !e.Uploaded
                })), k = e.onProgress;
            i.eachLimit(C, p, (function (t, i) {
                if (n._isRunningTask(r)) {
                    var s = t.PartNumber, p = Math.min(l, t.PartNumber * d) - (t.PartNumber - 1) * d, m = 0;
                    f.call(n, {
                        TaskId: r,
                        Bucket: o,
                        Region: a,
                        Key: c,
                        SliceSize: d,
                        FileSize: l,
                        PartNumber: s,
                        ServerSideEncryption: y,
                        Body: h,
                        UploadData: u,
                        Headers: v,
                        onProgress: function (e) {
                            g += e.loaded - m, m = e.loaded, k({loaded: g, total: l})
                        },
                        tracker: e.tracker
                    }, (function (e, o) {
                        n._isRunningTask(r) && (e || o.ETag || (e = 'get ETag error, please add "ETag" to CORS ExposeHeader setting.( 获取ETag失败，请在CORS ExposeHeader设置中添加ETag，请参考文档：https://cloud.tencent.com/document/product/436/13318 )'), e ? g -= m : (g += p - m, t.ETag = o.ETag), k({
                            loaded: g,
                            total: l
                        }), i(e || null, o))
                    }))
                }
            }), (function (e) {
                if (n._isRunningTask(r)) return e ? t(e) : void t(null, {UploadId: u.UploadId, SliceList: u.PartList})
            }))
        }

        function f(e, t) {
            var n = this, r = e.TaskId, o = e.Bucket, a = e.Region, c = e.Key, u = e.FileSize, l = e.Body,
                d = 1 * e.PartNumber, p = e.SliceSize, f = e.ServerSideEncryption, h = e.UploadData,
                m = e.Headers || {}, g = n.options.ChunkRetryTimes + 1, y = p * (d - 1), v = p, C = y + p;
            C > u && (v = (C = u) - y);
            var k = ["x-cos-traffic-limit", "x-cos-mime-limit"], S = {};
            s.each(m, (function (e, t) {
                k.indexOf(t) > -1 && (S[t] = e)
            }));
            var b = h.PartList[d - 1];
            i.retry(g, (function (t) {
                n._isRunningTask(r) && s.fileSlice(l, y, C, !0, (function (i) {
                    n.multipartUpload({
                        TaskId: r,
                        Bucket: o,
                        Region: a,
                        Key: c,
                        ContentLength: v,
                        PartNumber: d,
                        UploadId: h.UploadId,
                        ServerSideEncryption: f,
                        Body: i,
                        Headers: S,
                        onProgress: e.onProgress,
                        calledBySdk: "sliceUploadFile",
                        tracker: e.tracker
                    }, (function (e, o) {
                        if (n._isRunningTask(r)) return e ? t(e) : (b.Uploaded = !0, t(null, o))
                    }))
                }))
            }), (function (e, o) {
                if (n._isRunningTask(r)) return t(e, o)
            }))
        }

        function h(e, t) {
            var n = e.Bucket, r = e.Region, o = e.Key, a = e.UploadId, s = e.SliceList, c = this,
                u = this.options.ChunkRetryTimes + 1, l = e.Headers, d = s.map((function (e) {
                    return {PartNumber: e.PartNumber, ETag: e.ETag}
                }));
            i.retry(u, (function (t) {
                c.multipartComplete({
                    Bucket: n,
                    Region: r,
                    Key: o,
                    UploadId: a,
                    Parts: d,
                    Headers: l,
                    calledBySdk: "sliceUploadFile",
                    tracker: e.tracker
                }, t)
            }), (function (e, n) {
                t(e, n)
            }))
        }

        function m(e, t) {
            var n = e.Bucket, r = e.Region, o = e.Key, a = e.AbortArray, s = e.AsyncLimit || 1, c = this, u = 0,
                l = new Array(a.length);
            i.eachLimit(a, s, (function (t, i) {
                var a = u;
                if (o && o !== t.Key) return l[a] = {error: {KeyNotMatch: !0}}, void i(null);
                var s = t.UploadId || t.UploadID;
                c.multipartAbort({Bucket: n, Region: r, Key: t.Key, Headers: e.Headers, UploadId: s}, (function (e) {
                    var o = {Bucket: n, Region: r, Key: t.Key, UploadId: s};
                    l[a] = {error: e, task: o}, i(null)
                })), u++
            }), (function (e) {
                if (e) return t(e);
                for (var n = [], r = [], o = 0, i = l.length; o < i; o++) {
                    var a = l[o];
                    a.task && (a.error ? r.push(a.task) : n.push(a.task))
                }
                return t(null, {successList: n, errorList: r})
            }))
        }

        function g(e, t) {
            var n = e.TaskId, r = e.Bucket, o = e.Region, a = e.Key, s = e.CopySource, c = e.UploadId,
                u = 1 * e.PartNumber, l = e.CopySourceRange, d = this.options.ChunkRetryTimes + 1, p = this;
            i.retry(d, (function (e) {
                p.uploadPartCopy({
                    TaskId: n,
                    Bucket: r,
                    Region: o,
                    Key: a,
                    CopySource: s,
                    UploadId: c,
                    PartNumber: u,
                    CopySourceRange: l
                }, (function (t, n) {
                    e(t || null, n)
                }))
            }), (function (e, n) {
                return t(e, n)
            }))
        }

        var y = {
            sliceUploadFile: function (e, t) {
                var n, r, i = this, c = new a, l = e.TaskId, d = e.Bucket, f = e.Region, m = e.Key, g = e.Body,
                    y = e.ChunkSize || e.SliceSize || i.options.ChunkSize, v = e.AsyncLimit, C = e.StorageClass,
                    k = e.ServerSideEncryption, S = e.onHashProgress, b = e.tracker;
                b && b.setParams({chunkSize: y}), c.on("error", (function (n) {
                    if (i._isRunningTask(l)) return n.UploadId = e.UploadData.UploadId || "", t(n)
                })), c.on("upload_complete", (function (n) {
                    var r = s.extend({UploadId: e.UploadData.UploadId || ""}, n);
                    t(null, r)
                })), c.on("upload_slice_complete", (function (t) {
                    var a = {};
                    s.each(e.Headers, (function (e, t) {
                        var n = t.toLowerCase();
                        0 !== n.indexOf("x-cos-meta-") && "pic-operations" !== n || (a[t] = e)
                    })), h.call(i, {
                        Bucket: d,
                        Region: f,
                        Key: m,
                        UploadId: t.UploadId,
                        SliceList: t.SliceList,
                        Headers: a,
                        tracker: b
                    }, (function (e, a) {
                        if (i._isRunningTask(l)) {
                            if (o.removeUsing(t.UploadId), e) return r(null, !0), c.emit("error", e);
                            o.removeUploadId.call(i, t.UploadId), r({
                                loaded: n,
                                total: n
                            }, !0), c.emit("upload_complete", a)
                        }
                    }))
                })), c.on("get_upload_data_finish", (function (t) {
                    var a = o.getFileId(g, e.ChunkSize, d, m);
                    a && o.saveUploadId.call(i, a, t.UploadId, i.options.UploadIdCacheLimit), o.setUsing(t.UploadId), r(null, !0), p.call(i, {
                        TaskId: l,
                        Bucket: d,
                        Region: f,
                        Key: m,
                        Body: g,
                        FileSize: n,
                        SliceSize: y,
                        AsyncLimit: v,
                        ServerSideEncryption: k,
                        UploadData: t,
                        Headers: e.Headers,
                        onProgress: r,
                        tracker: b
                    }, (function (e, t) {
                        if (i._isRunningTask(l)) return e ? (r(null, !0), c.emit("error", e)) : void c.emit("upload_slice_complete", t)
                    }))
                })), c.on("get_file_size_finish", (function () {
                    if (r = s.throttleOnProgress.call(i, n, e.onProgress), e.UploadData.UploadId) c.emit("get_upload_data_finish", e.UploadData); else {
                        var t = s.extend({
                            TaskId: l,
                            Bucket: d,
                            Region: f,
                            Key: m,
                            Headers: e.Headers,
                            StorageClass: C,
                            Body: g,
                            FileSize: n,
                            SliceSize: y,
                            onHashProgress: S,
                            tracker: b
                        }, e);
                        u.call(i, t, (function (t, n) {
                            if (i._isRunningTask(l)) {
                                if (t) return c.emit("error", t);
                                e.UploadData.UploadId = n.UploadId, e.UploadData.PartList = n.PartList, c.emit("get_upload_data_finish", e.UploadData)
                            }
                        }))
                    }
                })), n = e.ContentLength, delete e.ContentLength, !e.Headers && (e.Headers = {}), s.each(e.Headers, (function (t, n) {
                    "content-length" === n.toLowerCase() && delete e.Headers[n]
                })), function () {
                    for (var t = [1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 5120], r = 1048576, o = 0; o < t.length && !(n / (r = 1024 * t[o] * 1024) <= i.options.MaxPartNumber); o++) ;
                    e.ChunkSize = e.SliceSize = y = Math.max(y, r)
                }(), 0 === n ? (e.Body = "", e.ContentLength = 0, e.SkipTask = !0, i.putObject(e, t)) : c.emit("get_file_size_finish")
            }, abortUploadTask: function (e, t) {
                var n = e.Bucket, r = e.Region, o = e.Key, i = e.UploadId, c = e.Level || "task", u = e.AsyncLimit,
                    d = this, p = new a;
                if (p.on("error", (function (e) {
                    return t(e)
                })), p.on("get_abort_array", (function (i) {
                    m.call(d, {Bucket: n, Region: r, Key: o, Headers: e.Headers, AsyncLimit: u, AbortArray: i}, t)
                })), "bucket" === c) l.call(d, {
                    Bucket: n,
                    Region: r,
                    calledBySdk: "abortUploadTask"
                }, (function (e, n) {
                    if (e) return t(e);
                    p.emit("get_abort_array", n.UploadList || [])
                })); else if ("file" === c) {
                    if (!o) return t(s.error(new Error("abort_upload_task_no_key")));
                    l.call(d, {Bucket: n, Region: r, Key: o, calledBySdk: "abortUploadTask"}, (function (e, n) {
                        if (e) return t(e);
                        p.emit("get_abort_array", n.UploadList || [])
                    }))
                } else {
                    if ("task" !== c) return t(s.error(new Error("abort_unknown_level")));
                    if (!i) return t(s.error(new Error("abort_upload_task_no_id")));
                    if (!o) return t(s.error(new Error("abort_upload_task_no_key")));
                    p.emit("get_abort_array", [{Key: o, UploadId: i}])
                }
            }, uploadFile: function (e, t) {
                var n = this, o = void 0 === e.SliceSize ? n.options.SliceSize : e.SliceSize, i = [], a = e.Body,
                    u = a.size || a.length || 0, l = {TaskId: ""};
                if (n.options.EnableTracker) {
                    var d = n.options.UseAccelerate || "string" == typeof n.options.Domain && n.options.Domain.includes("accelerate.");
                    e.tracker = new c({
                        bucket: e.Bucket,
                        region: e.Region,
                        apiName: "uploadFile",
                        fileKey: e.Key,
                        fileSize: u,
                        accelerate: d,
                        deepTracker: n.options.DeepTracker,
                        customId: n.options.CustomId,
                        delay: n.options.TrackerDelay
                    })
                }
                s.each(e, (function (e, t) {
                    "object" !== r(e) && "function" != typeof e && (l[t] = e)
                }));
                var p = e.onTaskReady;
                e.onTaskReady = function (e) {
                    l.TaskId = e, p && p(e)
                };
                var f = u > o ? "sliceUploadFile" : "putObject", h = e.onFileFinish;
                i.push({
                    api: f, params: e, callback: function (n, r) {
                        e.tracker && e.tracker.formatResult(n, r), h && h(n, r, l), t && t(n, r)
                    }
                }), n._addTasks(i)
            }, uploadFiles: function (e, t) {
                var n = this, o = void 0 === e.SliceSize ? n.options.SliceSize : e.SliceSize, i = 0, a = 0,
                    u = s.throttleOnProgress.call(n, a, e.onProgress), l = e.files.length, d = e.onFileFinish,
                    p = Array(l), f = function (e, n, r) {
                        u(null, !0), d && d(e, n, r), p[r.Index] = {
                            options: r,
                            error: e,
                            data: n
                        }, --l <= 0 && t && t(null, {files: p})
                    }, h = [];
                s.each(e.files, (function (e, t) {
                    !function () {
                        var l = e.Body, d = l.size || l.length || 0, p = {Index: t, TaskId: ""};
                        if (i += d, n.options.EnableTracker) {
                            var m = n.options.UseAccelerate || "string" == typeof n.options.Domain && n.options.Domain.includes("accelerate.");
                            e.tracker = new c({
                                bucket: e.Bucket,
                                region: e.Region,
                                apiName: "uploadFiles",
                                fileKey: e.Key,
                                fileSize: d,
                                accelerate: m,
                                deepTracker: n.options.DeepTracker,
                                customId: n.options.CustomId,
                                delay: n.options.TrackerDelay
                            })
                        }
                        s.each(e, (function (e, t) {
                            "object" !== r(e) && "function" != typeof e && (p[t] = e)
                        }));
                        var g = e.onTaskReady;
                        e.onTaskReady = function (e) {
                            p.TaskId = e, g && g(e)
                        };
                        var y = 0, v = e.onProgress;
                        e.onProgress = function (e) {
                            a = a - y + e.loaded, y = e.loaded, v && v(e), u({loaded: a, total: i})
                        };
                        var C = d > o ? "sliceUploadFile" : "putObject", k = e.onFileFinish;
                        h.push({
                            api: C, params: e, callback: function (t, n) {
                                e.tracker && e.tracker.formatResult(t, n), k && k(t, n), f && f(t, n, p)
                            }
                        })
                    }()
                })), n._addTasks(h)
            }, sliceCopyFile: function (e, t) {
                var n = new a, r = this, c = e.Bucket, u = e.Region, l = e.Key, p = e.CopySource,
                    f = s.getSourceParams.call(this, p);
                if (f) {
                    var h = f.Bucket, m = f.Region, y = decodeURIComponent(f.Key),
                        v = void 0 === e.CopySliceSize ? r.options.CopySliceSize : e.CopySliceSize;
                    v = Math.max(0, v);
                    var C, k, S = e.CopyChunkSize || this.options.CopyChunkSize,
                        b = this.options.CopyChunkParallelLimit, w = this.options.ChunkRetryTimes + 1, T = 0, R = 0,
                        E = {}, x = {}, A = {};
                    n.on("copy_slice_complete", (function (n) {
                        var a = {};
                        s.each(e.Headers, (function (e, t) {
                            0 === t.toLowerCase().indexOf("x-cos-meta-") && (a[t] = e)
                        }));
                        var d = s.map(n.PartList, (function (e) {
                            return {PartNumber: e.PartNumber, ETag: e.ETag}
                        }));
                        i.retry(w, (function (e) {
                            r.multipartComplete({
                                Bucket: c,
                                Region: u,
                                Key: l,
                                UploadId: n.UploadId,
                                Parts: d,
                                calledBySdk: "sliceCopyFile"
                            }, e)
                        }), (function (e, r) {
                            if (o.removeUsing(n.UploadId), e) return k(null, !0), t(e);
                            o.removeUploadId(n.UploadId), k({loaded: C, total: C}, !0), t(null, r)
                        }))
                    })), n.on("get_copy_data_finish", (function (e) {
                        var a = o.getCopyFileId(p, E, S, c, l);
                        a && o.saveUploadId(a, e.UploadId, r.options.UploadIdCacheLimit), o.setUsing(e.UploadId);
                        var d = s.filter(e.PartList, (function (e) {
                            return e.Uploaded && (R += e.PartNumber >= T && C % S || S), !e.Uploaded
                        }));
                        i.eachLimit(d, b, (function (t, n) {
                            var o = t.PartNumber, a = t.CopySourceRange, s = t.end - t.start;
                            i.retry(w, (function (t) {
                                g.call(r, {
                                    Bucket: c,
                                    Region: u,
                                    Key: l,
                                    CopySource: p,
                                    UploadId: e.UploadId,
                                    PartNumber: o,
                                    CopySourceRange: a
                                }, t)
                            }), (function (e, r) {
                                if (e) return n(e);
                                k({loaded: R += s, total: C}), t.ETag = r.ETag, n(e || null, r)
                            }))
                        }), (function (r) {
                            if (r) return o.removeUsing(e.UploadId), k(null, !0), t(r);
                            n.emit("copy_slice_complete", e)
                        }))
                    })), n.on("get_chunk_size_finish", (function () {
                        var i = function () {
                            r.multipartInit({Bucket: c, Region: u, Key: l, Headers: A}, (function (r, o) {
                                if (r) return t(r);
                                e.UploadId = o.UploadId, n.emit("get_copy_data_finish", {
                                    UploadId: e.UploadId,
                                    PartList: e.PartList
                                })
                            }))
                        }, a = o.getCopyFileId(p, E, S, c, l), f = o.getUploadIdList(a);
                        if (!a || !f) return i();
                        !function t(a) {
                            if (a >= f.length) return i();
                            var p = f[a];
                            if (o.using[p]) return t(a + 1);
                            d.call(r, {Bucket: c, Region: u, Key: l, UploadId: p}, (function (r, i) {
                                if (r) o.removeUploadId(p), t(a + 1); else {
                                    if (o.using[p]) return t(a + 1);
                                    var c = {}, u = 0;
                                    s.each(i.PartList, (function (e) {
                                        var t = parseInt(e.Size), n = u + t - 1;
                                        c[e.PartNumber + "|" + u + "|" + n] = e.ETag, u += t
                                    })), s.each(e.PartList, (function (e) {
                                        var t = c[e.PartNumber + "|" + e.start + "|" + e.end];
                                        t && (e.ETag = t, e.Uploaded = !0)
                                    })), n.emit("get_copy_data_finish", {UploadId: p, PartList: e.PartList})
                                }
                            }))
                        }(0)
                    })), n.on("get_file_size_finish", (function () {
                        if (function () {
                            for (var t = [1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 5120], n = 1048576, o = 0; o < t.length && !(C / (n = 1024 * t[o] * 1024) <= r.options.MaxPartNumber); o++) ;
                            e.ChunkSize = S = Math.max(S, n), T = Math.ceil(C / S);
                            for (var i = [], a = 1; a <= T; a++) {
                                var s = (a - 1) * S, c = a * S < C ? a * S - 1 : C - 1,
                                    u = {PartNumber: a, start: s, end: c, CopySourceRange: "bytes=" + s + "-" + c};
                                i.push(u)
                            }
                            e.PartList = i
                        }(), (A = "Replaced" === e.Headers["x-cos-metadata-directive"] ? e.Headers : x)["x-cos-storage-class"] = e.Headers["x-cos-storage-class"] || x["x-cos-storage-class"], A = s.clearKey(A), "ARCHIVE" === x["x-cos-storage-class"] || "DEEP_ARCHIVE" === x["x-cos-storage-class"]) {
                            var o = x["x-cos-restore"];
                            if (!o || 'ongoing-request="true"' === o) return void t(s.error(new Error("Unrestored archive object is not allowed to be copied")))
                        }
                        delete A["x-cos-copy-source"], delete A["x-cos-metadata-directive"], delete A["x-cos-copy-source-If-Modified-Since"], delete A["x-cos-copy-source-If-Unmodified-Since"], delete A["x-cos-copy-source-If-Match"], delete A["x-cos-copy-source-If-None-Match"], n.emit("get_chunk_size_finish")
                    })), r.headObject({Bucket: h, Region: m, Key: y}, (function (o, i) {
                        if (o) o.statusCode && 404 === o.statusCode ? t(s.error(o, {ErrorStatus: y + " Not Exist"})) : t(o); else if (void 0 !== (C = e.FileSize = i.headers["content-length"]) && C) if (k = s.throttleOnProgress.call(r, C, e.onProgress), C <= v) e.Headers["x-cos-metadata-directive"] || (e.Headers["x-cos-metadata-directive"] = "Copy"), r.putObjectCopy(e, (function (e, n) {
                            if (e) return k(null, !0), t(e);
                            k({loaded: C, total: C}, !0), t(e, n)
                        })); else {
                            var a = i.headers;
                            E = a, x = {
                                "Cache-Control": a["cache-control"],
                                "Content-Disposition": a["content-disposition"],
                                "Content-Encoding": a["content-encoding"],
                                "Content-Type": a["content-type"],
                                Expires: a.expires,
                                "x-cos-storage-class": a["x-cos-storage-class"]
                            }, s.each(a, (function (e, t) {
                                var n = "x-cos-meta-";
                                0 === t.indexOf(n) && t.length > n.length && (x[t] = e)
                            })), n.emit("get_file_size_finish")
                        } else t(s.error(new Error('get Content-Length error, please add "Content-Length" to CORS ExposeHeader setting.（ 获取Content-Length失败，请在CORS ExposeHeader设置中添加Content-Length，请参考文档：https://cloud.tencent.com/document/product/436/13318 ）')))
                    }))
                } else t(s.error(new Error("CopySource format error")))
            }
        };
        e.exports.init = function (e, t) {
            t.transferToTaskMethod(y, "sliceUploadFile"), s.each(y, (function (t, n) {
                e.prototype[n] = s.apiWrapper(n, t)
            }))
        }
    }, function (e, t) {
        var n = {
            eachLimit: function (e, t, n, r) {
                if (r = r || function () {
                }, !e.length || t <= 0) return r();
                var o = 0, i = 0, a = 0;
                !function s() {
                    if (o >= e.length) return r();
                    for (; a < t && i < e.length;) a += 1, n(e[(i += 1) - 1], (function (t) {
                        t ? (r(t), r = function () {
                        }) : (a -= 1, (o += 1) >= e.length ? r() : s())
                    }))
                }()
            }, retry: function (e, t, n) {
                e < 1 ? n() : function r(o) {
                    t((function (t, i) {
                        t && o < e ? r(o + 1) : n(t, i)
                    }))
                }(1)
            }
        };
        e.exports = n
    }])
}));